求长度

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" 的长度是多少?

登录 后可看答案

求长度 · 考级冲刺 · op599 课程