如何将给定的字线输入到以空格分隔的不同字符串中?

时间:2019-07-12 10:09:14

标签: c++ string c++11 iostream

我是C ++的新手,发现很难使用字符串。用户正在输入其全名,即名字和姓氏,并用空格分隔,我想在输入名称时将其存储在不同的字符串中

输入

ABC XYZ

代码

    string s1,s2;
    getline(cin,s1);

    getline(cin,s2);
    cout<<"Firstname :"<<s1<<endl;
    cout<<"Lastname :"<<s2<<endl;

输出

Firstname :ABC XYZ
Lastname :                //nothing is printed here , i want to sore the last name here

2 个答案:

答案 0 :(得分:1)

这是因为std::getline直到看到\n时才会停止,您可以提供自己的分隔符:

string s1,s2;
getline(cin,s1, ' '); // stop at whitespace
getline(cin,s2); // stop at \n

旁注:在这个小程序中很好,但是当您进入较大的程序时,您将希望避免使用using namespace std;

答案 1 :(得分:0)

要做:

 cin >> s1 >> s2;

 cout<<"Firstname :" << s1 <<endl;
 cout<<"Lastname :" << s2 <<endl;

    string s1,s2;
    getline(cin,s1);
    auto pos = s1.find(' ');
    s2 = s1.substr(pos);
    s1 = s1.substr(0, pos);
    cout<<"Firstname :" << s1 << endl;
    cout<<"Lastname :" << s2 << endl;