编辑:我现在看到它是如何工作的,在字符串myString
中,它占用了空间之后的所有内容。那么如果你想取名字而不是姓氏,怎么办呢,因为现在你不能使用这个空间。
我想让用户输入他们的名字和姓氏,然后我只想将他们的姓氏打印到屏幕上。
我知道如何向用户询问问题,而我正在使用getline
来获取他们名字的字符串。但是一旦发生这种情况,我如何取出他们的姓氏并将其打印出来而不打印出他们的名字。我猜,我似乎无法隔离字符串的每个部分。
我试着寻找答案,但我似乎无法找到答案。
using namespace std;
int main()
{
string firstName;
string lastName;
cout << "Welcome to my store!" << endl;
cout << "---------------------------" << endl;
cout << "Please enter your first and last name. ";
getline(cin, firstName);
cout << "\nThank you " << firstName << " for shopping with us!";
}
我按原样离开了getline,因为我尝试将getline(cin,firstName,lastName)用于尝试将用户输入的每个单词分配给字符串,但这不起作用。
答案 0 :(得分:0)
我认为这就是你要找的东西(仅用于打印姓氏)
#include <iostream>
#include <string>
using namespace std;
int main()
{
string myString;
int i;
cout<<"\n Enter a name:";
getline(cin, myString, '\n');//Get a name where first name and last name is seperated by a space
i=myString.find(' ');//find the find occurance of space in that string
cout<<"thanks for shopping:";
cout<<myString.substr(i,myString.length());//printing the rest of the string from the occurence of space
return 0;
}
当你提供像'Sachin Tendulkar'这样的输入时 它说'感谢购物:Tendulkar'