una separar por parte extraer espacio como caracteres caracter cadena blanco c++ tokenize stringstream

c++ - separar - split java espacio en blanco



Cómo usar stringstream para separar cadenas separadas por comas (3)

Tengo el siguiente código:

std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s/n", token.c_str()); }

El resultado es:

a B C
def, ghi

Entonces, el operador stringstream::>> puede separar cadenas por espacio pero no por comas. ¿Hay alguna forma de modificar el código anterior para que pueda obtener el siguiente resultado?

entrada : "abc, def, ghi"

salida :
a B C
def
ghi


Quizás este código te ayude:

stringstream ss(str);//str can be any string int integer; char ch; while(ss >> a) { ss>>ch; //flush the '','' cout<< integer <<endl; }


#include <iostream> #include <sstream> std::string input = "abc,def,ghi"; std::istringstream ss(input); std::string token; while(std::getline(ss, token, '','')) { std::cout << token << ''/n''; }

a B C
def
ghi


#include <iostream> #include <string> #include <sstream> using namespace std; int main() { std::string input = "abc,def, ghi"; std::istringstream ss(input); std::string token; size_t pos=-1; while(ss>>token) { while ((pos=token.rfind('','')) != std::string::npos) { token.erase(pos, 1); } std::cout << token << ''/n''; } }