Ниже приведена программа, которую я закодировал для разбиения строки и сохранения в векторе. Как я могу извлечь поля спецификаций из строки и снова конкатенировать ожидаемую строку с использованием конвейера (|).Как удалить пробелы в векторе в 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;
}
выход:
Event#:11918124
1234
67893
USD
444400090
302
45
USA
Ожидаемый результат:
Event#:11918124|USD|444400090|USA
Может кто-нибудь, пожалуйста, помогите мне в C++ Я новичок в C++
пробелы не '' ', этот код, похоже, делает то, о чем вы его просили. И если вы хотите, чтобы все на одной строке, что отправить 'endl' после каждого выходного элемента? – WhozCraig