如何打印出字符串的某个部分

时间:2014-02-13 06:21:34

标签: c++ getline

编辑:我现在看到它是如何工作的,在字符串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)用于尝试将用户输入的每个单词分配给字符串,但这不起作用。

1 个答案:

答案 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'