C++字符串截取

C++字符串截取int i;
string t[10];
string x;
getline(cin,x,'\n');
for(i=0;i<10;i++)
{
size_t a = x.find (",") ;
t[i] = x.substr (k,a) ;
k = a+1;
}

for(i=0;i<10;i++)
{
cout<<"t["<<i<<"]"<<" = "<<t[i]<<endl;
}
---------------------
输入:我,好,帅
输出是:
Tm[0] = 我
Tm[1] = 好
Tm[2] = 好
Tm[3] = 好
Tm[4] = 好
Tm[5] = 好
Tm[6] = 好
Tm[7] = 好
Tm[8] = 好
Tm[9] = 好
哪里错了?
或者大神们还有什么办法让x用逗号截取存进t[]?

可以参考下面的例子,自己动手发现问题,印象才会更深
可以用substr这个方法,有两个输入参数分别为起始地址和截取的长度。
s2 = s1.substr(0,3);
s3 = s1.substr(4,3);

如果写的更通用一点,就是先查找“+”的位置,然后在分隔。
size_t iPos = s.find("+");
s2 = s1.substr(0, iPos);
s3 = s1.substr(iPos+1, s1.length()-iPos-1);
温馨提示:答案为网友推荐,仅供参考
相似回答