从文本输入中将字符串拆分为更小的字符串

Splitting string into smaller strings from text input

将文本文件读入我正在处理的 C++ 程序,并将每个字符串存储在双链表的节点中。问题是,我不知道如何将一行拆分成更小的字符串,将它们分隔在 space 所在的位置。

例如,一个输入是

"Duck Donald 940-666-5678"

我试图将它拆分为 lastname 字符串、firstname 字符串和白色 space 处的 phnum 字符串。结果基本上是:

lastname==Duck
firstname==Donald
phnum==940-666-5678

我该怎么做?

我不太确定您是如何从文件中读入的,但是这段代码可能会对您有所帮助。

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

int main () 
{
  string line;
  ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile,line) )
    {
        istringstream iss(s);
        do
        {
            string sub;
            iss >> sub;
            cout << "Substring: " << sub << endl;
        } while (iss);
    }

    myfile.close();
  }

  else cout << "Unable to open file"; 

  return 0;
}

确保在提问之前进行搜索 Whosebug/Google,因为您可以多次轻松找到答案(查看我的资源)

资源:http://www.cplusplus.com/doc/tutorial/files/, Split a string in C++?

虽然我不确定您是如何提取这些数据的,但我相信您应该能够使用 >> 运算符。

示例:

string lastname;
string firstname;
string phnum;
ifstream myFile;
myFile.open("example.txt");

myFile >> lastname >> firstname >> phnum;