下面是我编写的用于拆分字符串并存储在向量中的程序。 如何从字符串中检索细节字段,并再次使用管道(|)符号连接预期的字符串。
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> split(string str, char delimiter)
{
vector<string> internal;
stringstream ss(str);
string tok;
while(getline(ss, tok, delimiter))
{
internal.push_back(tok);
}
return internal;
}
int main(int argc, char **argv)
{
string myCSV = "Event#:11918124|1234|67893|USD||||444400090|||||302|45|USA|||||";
vector<string> sep = split(myCSV, '|');
for(int i = 0; i < sep.size(); ++i);
cout << sep[0] << "|" << sep[3] << "|" << sep[7] << "|" << sep[14] << endl;
}
输出:
Event#:11918124
1234
67893
USD
444400090
302
45
USA
预期产出:
Event#:11918124|USD|444400090|USA
任何人都可以用c ++帮助我。我是c ++的新手
答案 0 :(得分:1)
您需要做的就是连接记录的所需字段。它们始终存在于相同的索引(0,3,7,14)。 所以在你的情况下,它就像:
一样简单cout << sep[0] << "|" << sep[3] << "|" << sep[7] << "|" << sep[14] << endl;
顺便说一句,你的&#34;输出:&#34;你的代码是错误的。