我正在研究一个拼接输入的名字字符串的项目,由于某种原因它不起作用.部分内容是从我的书中复制的代码,据说可行,所以我卡住了.难道我做错了什么?
#include <iostream>
#include <string>
using namespace std;
void main()
{
string name;
int index;
cout<<"Please enter your full name. ";
cin>>name;
cout<<"\n"<<endl;
index = name.find(' ');
cout<<"First Name: "<<name.substr(0, index)<<" "<<name.substr(0, index).length()<<endl;
name = name.substr(index+1, name.length()-1);
index = name.find(' ');
cout<<"Middle Name: "<<name.substr(0, index)<<" "<<name.substr(0, index).length()<<endl;
name = name.substr(index+1, name.length()-1);
cout<<"Last Name: "<<name<<" "<<name.length()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
大多数人的名字至少由两个单词组成.这只会得到其中一个:
cout<<"Please enter your full name. ";
cin>>name;
Run Code Online (Sandbox Code Playgroud)
istream operator>>是用空格分隔的.改为使用getline:
std::getline(std::cin, name);
Run Code Online (Sandbox Code Playgroud)
为了您的目的,您可能会这样做,这更简单:
std::string first, middle, last;
std::cin >> first >> middle >> last;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |