C++,如何只打印出字符串的第一部分
C++, how do I print out only the first part of a string?
我想通过使用字符串变量询问用户的名字和姓氏,然后使用他们在该字符串中输入的名字并将其打印出来。
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;
相关文章:
- 将字符串的一部分分配给char数组
- 如何从给定字符串中删除第二次和第三次出现的$
- 如何根据第二列/第三列等对字符串向量进行排序?
- 如何从字符串向量中选择第 n 个位置?
- 如何使用 Boost C++ 打印第 n 个字符串拆分?
- 如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?
- 无需使用循环,就将ISBN-10的前9位数字读取为字符串并计算第10位数字
- 使用C 中字符串标头的getline()函数将第一个char存储在字符串对象中
- 虽然第三次循环循环,尽管在我眼中没有满足它的条件,因此打印了一个空字符串
- 如何在向量C++中指向字符串中的第 n 个字符
- C ++中的字符串排序,也没有在第5个元素正确排序
- 如何从数组 c++ 中的字符串打印第 N 个字符
- 反转十六进制字符串C++的第 7 位
- C++初级读本第五版字符串练习,要求两段不同的代码提供相同的输出
- 字符串到int的第n个字符
- 如何知道文本文件中的字符串是否在第一行?[C++ ]
- 如何从字符串中一次选择两个字符?到达字符串的第 i 个位置
- C ++ SFML 数组[5] for loop window.display中的字符串,仅显示第1,3,5行
- 字符串输入 - 忽略第一行
- 字符串的第 n 次出现的索引