我需要进行字符串拆分,如果我有一个像下面这样的字符串
string foo="thisIsThe Test Input";
我需要在多个或单个withspace之后获得该部分。在这种情况下,我需要得到"Test Input".
我知道我可以得到第一部分:
int index=foo.find(' ');
string subString=foo.substr(0,index);
但我不知道我怎么能做我想做的事。有人帮我吗?
答案 0 :(得分:1)
std::find_first_not_of
接受一个位置参数,指示从哪里开始搜索。所以用它来找到第一个非空格,从第一个空格开始。
int index=foo.find(' ');
index=foo.find_first_not_of(' ', index);
string subString=foo.substr(index);
答案 1 :(得分:0)
您也可以通过char删除任何空格来复制到新的字符串char。 这样可以更容易地使用foo.find('');
消除所有空白
string foo = "thisIsThe Test Input";
string bar[100];
for (int i = 0; i < foo.length(); i++)
{
if (foo[i] != ' ')
bar[i] = foo[i];
}
for (int i = 0; i < sizeof(bar) / sizeof(bar[i]); i++)
cout << bar[i];
在每个字词之间留一个空格:
string foo = "thisIsThe Test Input";
string bar[100];
for (int i = 0; i < foo.length(); i++)
{
if (foo[i] != ' ')
bar[i] = foo[i];
else if (foo[i + 1] != ' ' && foo[i] == ' ')
bar[i] = ' ';
}
for (int i = 0; i < sizeof(bar)/sizeof(bar[i]); i++)
cout << bar[i];