从文本输入中将字符串拆分为更小的字符串
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;
将文本文件读入我正在处理的 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;