将字符串中的每个单词输出到新行

时间:2013-11-21 03:23:53

标签: c++ string

我正在设计一个有1个输入参数的函数:string。该函数获取此字符串的内容,并将每个单词输出到新行。目前,除了输出字符串中的最后一个字之外,此函数执行所有操作。这是功能代码:

void outputPhrase(string newPhrase)
{
    string ok;
    for (int i = 0; i < newPhrase.length(); i++)
    {
        ok += newPhrase[i];
        if (isspace(newPhrase.at(i)))
        {
            cout << ok << endl;
            ok.clear();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个:

 for (int i = 0; i < newPhrase.length(); i++)
    {
        ok += newPhrase[i];

        if (isspace(newPhrase.at(i)) || i==newPhrase.length()-1)
        {
            cout << ok << endl;

            ok.clear();

        }


    }

答案 1 :(得分:1)

您可以使用此功能完成任务,

void split(string newPhrase)
{
    istringstream iss(newPhrase);

    do
    {
        string sub;
        iss >> sub;
        cout << sub << endl;
    } while (iss);
}

请记住包含&lt;字符串&gt;和&lt; sstream&gt;在你的代码中。