如何在c ++中删除向量中的空格

时间:2016-04-09 03:19:36

标签: c++ stl

下面是我编写的用于拆分字符串并存储在向量中的程序。 如何从字符串中检索细节字段,并再次使用管道(|)符号连接预期的字符串。

   #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 ++的新手

1 个答案:

答案 0 :(得分:1)

您需要做的就是连接记录的所需字段。它们始终存在于相同的索引(0,3,7,14)。 所以在你的情况下,它就像:

一样简单
cout << sep[0] << "|" << sep[3] << "|" << sep[7] << "|" << sep[14] << endl;

顺便说一句,你的&#34;输出:&#34;你的代码是错误的。