Ci-dessous est le programme que j'ai codé pour diviser la chaîne et stocker dans un vecteur. Comment puis-je récupérer les champs spécifiques de la chaîne et à nouveau concaténer la chaîne attendue en utilisant le symbole pipeline (|).comment supprimer des espaces en vecteur en C++
#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;
}
sortie:
Event#:11918124
1234
67893
USD
444400090
302
45
USA
Résultats escomptés:
Event#:11918124|USD|444400090|USA
Quelqu'un peut-il s'il vous plaît aidez-moi en C++ Je suis nouveau à C++
Les espaces ne sont pas '|', Ce code semble faire ce que vous lui avez demandé. Et si vous voulez tout sur une seule ligne, qu'en est-il de 'endl' après chaque élément de sortie? – WhozCraig