如何使用多个空格存储字符串C ++

时间:2018-09-30 07:40:37

标签: c++ string cin

我的程序应该接受一些输入,例如“ Hi there”。或“我有一个”。 (请注意结束点),如果字符串包含“ 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

2 个答案:

答案 0 :(得分:0)

使用getline()解决方案,如πάνταῥεῥ建议:

#include <iostream>
#include <string>

int main()
{
    std::string sequence;
    std::getline(std::cin, sequence);

    for (auto c : sequence) {
        if (c == 'a') {
            std::cout << "yes\n";
            return 0;
        }
    }
    std::cout << "no\n";
}

答案 1 :(得分:0)

您可以使用std :: getline(),也可以尝试逐字选择。

#include <iostream>
#include <string>

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