请教一下关于stl::string::substr()的使用
#include <string>
#include <iostream>
using namespace std;
int main()
{
string str2,str3,str4;
cout<<"Input children's name:"<<endl;
cin>>str2;
str3 = str2.substr(0,str2.find_first_of(" "));
str4 = str2.substr(str2.find_first_of(" ")+1);
cout<<str3<<""<<str4<<endl;
//getchar();
return 0;
}
以上是我的代码,我想输入类似"abc def"的字符串,把空格前后的两个字符串分别存在其他两个字符串中,结果发现substr的表现不如我的预期.
我想请教一下,
1.上面substr的使用哪里出了问题,这个比较重要
2.把一个字符串从空格分开有什么简单点的方法
[解决办法]
str2用cin>>输入后 值为"abc" 而不是你期望的“abc def”
[解决办法]
用getline()
#include <string>
#include <iostream>
using namespace std;
int main()
{
string str2,str3,str4;
cout<<"Input children's name:"<<endl;
getline(cin,str2);
str3 = str2.substr(0,str2.find_first_of(" "));
str4 = str2.substr(str2.find_first_of(" ")+1);
cout<<str3<<" "<<str4<<endl;
return 0;
}