我有一个字符串,需要用逗号分隔,但是我不想在字符串上用逗号分隔。
所以,我的字符串是:
Let's eat, Granny,Happy,22,Chicken
我想这样分割它:
Let's eat, Granny
Happy
22
Chicken
但是我得到了这个:
Let's eat
Granny
Happy
22
Chicken
我如何在不弄乱第一个逗号的情况下拆分此字符串?我确实有一个想法,那就是我想忽略的逗号后面有空格,我也许可以利用它,对吗?如果我错了,请纠正我。
这里是我到目前为止编写的代码:
string delimiter = ",";
string test = "Let's eat, Granny,Happy,22,Chicken,";
size_t pos = 0;
string token;
while((pos = test.find(delimiter)) !=String::npos){ //position of comma
token = test.substr(0, pos); //read in string at position of comma
}
鉴于您限于的数据,逗号实际上不是可靠的分隔符,除非您可以保证任何可忽略的逗号总是后跟空格。如果是这样,您可以执行以下操作:
char delimiter = ',';
string test = "Let's eat, Granny,Happy,22,Chicken,";
size_t start = 0, end;
string token;
do
{
end = test.find(delimiter, start);
while ((end != string::npos) &&
((end+1) < test.size()) &&
(test[end+1] == ' '))
{
end = test.find(delimiter, end+2);
}
if (end == string::npos)
token = test.substr(start);
else
token = test.substr(start, end-start);
// use token as needed...
start = end + 1;
}
while (end != string::npos);