Как использовать stringstream для разделения разделенных запятыми строк

У меня есть следующий код:

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

Выход:

азбука
DEF, GHI

Поэтому оператор stringstream::>> может разделять строки по пробелам, но не по запятой. Есть ли способ изменить приведенный выше код, чтобы я мог получить следующий результат?

input : “abc, def, ghi”

выход :
азбука
Защита
ГХИ

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

азбука
Защита
ГХИ

 #include  #include  #include  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'; } } 

Возможно, этот код вам поможет:

 stringstream ss(str);//str can be any string int integer; char ch; while(ss >> a) { ss>>ch; //flush the ',' cout<< integer < 
  • Разделение разделенной запятой строки в PL / SQL хранимой процедуре
  • Каков самый простой / лучший / самый правильный способ перебора символов строки в Java?
  • Давайте будем гением компьютера.