c ++拆分字符串并在空格后得到部件

时间:2013-12-28 00:37:12

标签: c++ string split

我需要进行字符串拆分,如果我有一个像下面这样的字符串

string foo="thisIsThe         Test     Input";

我需要在多个或单个withspace之后获得该部分。在这种情况下,我需要得到"Test Input".我知道我可以得到第一部分:

int index=foo.find(' ');
string subString=foo.substr(0,index);

但我不知道我怎么能做我想做的事。有人帮我吗?

2 个答案:

答案 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];