将子字符串插入另一个字符串

时间:2013-03-29 10:53:41

标签: c++ string

我有下一个字符串:

string str1 = "1,123456,name1,4";
string str2;

我想插入str2,str1的字符串(从第9个字母到,)。

所以str2应该是:name1

如果str1 = "2,234567,namenamename,5",那么str2将是:namenamename(再次:从第9个字母到,)。

我不想使用strtok

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

您可以将std::string::find()std::string::substr()结合使用:

std::string::size_type pos = 9;
std::string str1 = "1,123456,name1,4";
std::string::size_type commaPos = str1.find(',', pos);
if (commaPos == std::string::npos)
{
    commaPos = str1.length();
}

std::string str2 = str1.substr(pos, commaPos - pos);

这是live example