读书人

请问一上关于stl:string:substr()的使

发布时间: 2013-03-25 15:43:04 作者: rapoo

请教一下关于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;
}

用substr挺好的,或者就循环判断空格的位置,或者用boost里的split
[解决办法]
cin空格分割的

读书人网 >C++

热点推荐