我是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
答案 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;