当前位置: 代码迷 >> 综合 >> strlen(const char * str) string::size() string::length() 字符串长度返回值注意事项
  详细解决方案

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

热度:67   发布时间:2023-12-08 14:13:15.0

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()返回值不能直接拿过来直接用。

  相关解决方案