Я разрабатываю функцию, которая имеет 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();
}
}
}
Попробуй это:
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();
}
}
Вы можете использовать эту функцию для выполнения своей задачи,
void split(string newPhrase)
{
istringstream iss(newPhrase);
do
{
string sub;
iss >> sub;
cout << sub << endl;
} while (iss);
}
Не забудьте включить <code> и <sstream> в свой код.