仅在一个变量中拆分全名的单词

splitting words for full name in only one variable

我想把全名分开。它仅适用于名字。

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

int main()
{
     string FullName;
     int i = 0;
     cout <<"Enter your full name "<<endl;
     getline(cin,FullName);

     while (FullName[i] != ' ')
     {
         cout<<FullName.substr(i,FullName.find(' '))<<endl;;
         i++;
     }

     cout <<endl;
     }
return 0
}

我想像这样在单独的行中分隔每个名称:如果我输入:

     Max Michael Max 

输出应在单独的新行中包含每个名称:

     Max
     Michael
     Max

如何在单独的行中拆分每个名称?

最简单的方法是在读入名称后使用std::istringstream

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
     string FullName;
     cout <<"Enter your full name "<<endl;
     getline(cin, FullName);
     string namepart;
     istringstream strm(FullName);
     while ( strm >> namepart )
        cout << namepart << '\n';
}

Live Example