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

时间:2015-02-11 15:14:47

标签: c++ string ifstream

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

例如,一个输入是

  

“Duck Donald 940-666-5678”

我试图将其拆分为lastname字符串,firstname字符串和空格中的phnum字符串。结果基本上是:

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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

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

示例:

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

myFile >> lastname >> firstname >> phnum;

答案 1 :(得分:0)

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

#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;
}

请务必在询问之前搜索Stackoverflow / Google,因为您可以轻松地多次找到答案(请参阅我的资源)

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