我正在尝试找出字符串的长度。这有效并输出 14
:
#include <iostream>
#include <string>
using namespace std;
int main(){
string str = "this is sparta";
cout << str.length() << endl;
}
然而这失败了:
#include <iostream>
#include <string>
using namespace std;
int main(){
string str;
cin >> str;
cout << str.length() << endl;
}
当我输入句子 this is sparta
并回车时,我得到 4
作为长度。
我做错了什么?
最佳答案
那是因为 cin
在空格处停止。如果您想阅读所有单词,则需要循环:
int main() {
string str;
while (cin >> str) {
cout << str << " --> " << str.length() << endl;
}
}
或者,如果您希望同时获得它们,则需要使用 getline
:
int main() {
string str;
while (getline(cin, str)) {
cout << str << " --> " << str.length() << endl;
}
}
关于c++ - string.length() 在第一个单词后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857128/