C++,如何只打印出字符串的第一部分

C++, how do I print out only the first part of a string?

本文关键字:字符串 第一部 一部分 打印 C++      更新时间:2023-10-16

我想通过使用字符串变量询问用户的名字和姓氏,然后使用他们在该字符串中输入的名字并将其打印出来。

string name;
cout << "What is your first and last name? ";
cin >> name;
cout << "Thank you " << name  << " for shopping with us!";

在第二个 cout 语句中,name 变量的位置我只想使用他们的名字,在我拥有的当前设置中,它会输出他们的名字和姓氏。

您可以使用 getline 最多占用第一个空格,将名字放在一个变量中,然后在另一个变量中读取姓氏的行尾。 如果您需要将两者连接起来,请在之后执行此操作。 例:

string first, last, name;
getline(cin, first, ' ');
getline(cin, last);
cout << "Thank you " << first << " for shopping with us!";
name = first + ' ' + last; //Assuming you want a space in between
您需要

根据空格拆分字符串 - 查看此 QA:在C++中拆分字符串?

有很多方法可以做到这一点,其中一些比其他方法更容易。 对于可能的重复帖子检查,请在此处:将字符串拆分为C++?(很多人可能反驳了这一点)。

您也可以更改它,使其显示:

string fname;
string lname;
cout << "What is your first name? ";
cin >> fname;
cout << "What is your last name? ";
cin >> lname;
cout << "Thank you " << fname  << " for shopping with us!";

这个解决方案是最简单的,但如果你点击上面的链接,你会赚更多。

如果你想有一个输入并将其拆分为输出,你可以做这样的事情:

std::string line, fname, lname;
std::getline(std::cin, line);
std::istringstream iss(line);
iss >> fname >> lname;
std::cout << "Thank you, " << fname << ", for shopping with us!" << std::endl;