求长度
约 6 分钟
字符串的长度就是里面字符的个数,用 s.size() 或 s.length() 得到,两者完全一样。遍历字符串时,循环条件几乎都用长度来控制。
string s = "hello world";
int n = s.size(); // n == 11,空格也算一个字符
for (int i = 0; i < n; i++)
cout << s[i]; // 逐字符输出
cout << "\n长度=" << n << "\n";
"hello world" 的长度是 11——中间那个空格也是字符,照样计入。
一个隐蔽的坑:size() 返回的是无符号整数(unsigned)。写 for (int i = 0; i < s.size(); i++) 一般没事,但当你做 i <= s.size() - 2 且字符串为空时,s.size() - 2 在无符号世界里会变成一个超大的数,循环失控。稳妥办法是先 int n = s.size();,用有符号的 参与比较。遍历一遍是 。
小纸条
"hello world" 的长度是多少?
登录 后可看答案