Aşağıda, dizeyi bölmek ve bir vektörde saklamak için kodlanmış programdır. Özelik alanlarını dizeden nasıl geri alabilirim ve yine boruhattı (|) sembolü kullanarak beklenen dizeyi birleştirebilirim.C++ vektöründeki boşlukları nasıl kaldırılır
#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;
}
çıkışı:
Event#:11918124
1234
67893
USD
444400090
302
45
USA
Beklenen Çıktı:.
Event#:11918124|USD|444400090|USA
kimse ben C++
boşluklar '' ', Bu kod sizin istediklerinizi yapıyor gibi görünüyor. Ve eğer bir satırdaki her şeyi istiyorsanız, her çıktı elemanından sonra 'endl' gönderen nedir? – WhozCraig