如何存储包含多个空格的字符串 c++



我的程序应该接受一些输入,例如"你好"或"我有一个a"。(注意结束点(如果字符串包含"a",则输出"yes",如果不包含"no"。 问题是 cin 跳过空格和 noskipws 似乎不起作用。

我得到的代码:

#include <iostream>
#include <string>
using namespace std;

int main() {
string sequence;
cin >> noskipws >> sequence;
for (auto c : sequence) {
if (c == 'a') {
cout << "yes" << "n";
return 0;
}
}
cout << "no" << "n";
}
Input: "where are you."   Output: nothing
Input: "what."            Output: yes

使用 getline(( 的解决方案,正如 πάντα ῥεῖ 所建议的那样:

#include <iostream>
#include <string>
int main()
{
std::string sequence;
std::getline(std::cin, sequence);
for (auto c : sequence) {
if (c == 'a') {
std::cout << "yesn";
return 0;
}
}
std::cout << "non";
}

你可以使用 std::getline((,如果你想逐字选择,你可以试试这个。

#include <iostream>
#include <string>
int main(){
std::string sequence;
while(std::cin >> sequence){
for (auto c : sequence) {
if (c == 'a') {
std::cout << "yesn";
return 0;
}
}
}
cout << "no" << "n";
return 0;
}

最新更新