我有家庭作业。我必须创建一个将空格从字符串中取出并输出结果的函数。由于某种原因,我的for循环没有插入,并且我不确定为什么会这样。这是我的代码:
int main() {
string userInput;
string result;
string letter;
cin >> userInput;
result = "";
for (unsigned int i = 0; i < userInput.size() - 1; ++i){
letter = userInput.at(i);
if(userInput.at(i) != ' '){
result.append(letter);
}
}
cout << result << endl;
return 0;
}
答案 0 :(得分:5)
它可能似乎在第一个字母处停止,因为:
cin >> userInput;
只会读取直到第一个空格的字符串。
换句话说,如果输入hello there
,则只会得到hello
。
您可能希望使用getline()
来确保获得整行内容:
getline(cin, userInput).
您还想更改循环的继续条件。从字符串长度中减去一个将使您错过最后一个字符。相反,它应该是:
for (unsigned int i = 0; i < userInput.size(); ++i) {