strlen(const char * str) string::size() string::length() 字符串长度返回值注意事项

size_t strlen(const char *string);
size_t size() const;
size_t length() const;
size_t 实际上是unsigned int, 不能拿来直接用。
http://www.cplusplus.com/reference/string/string/
比如

string str1 = "12345678901112";
for(int i = 0; i < 10 -str1.size(); i++ )
{
  .....
}

在上述代码中 i < 10 - str1.size() 这个条件在这里是无效的。因为str1的长度大于10,所以 10 - str1.size() 的结果是一个很大的数。size() 的返回值是 unsigned int ,10 - str1.size() 的结果也会是unsigned int, 而不是期望的负数。这里一定要注意。
同样的string::length() , strlen()返回值不能直接拿过来直接用。

猜你喜欢

转载自blog.csdn.net/QTVLC/article/details/88199566