如何使用stringstream来分隔逗号分隔的string
我有以下代码:
std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s\n", token.c_str()); }
输出是:
ABC
DEF,GHI
所以stringstream::>>
运算符可以用空格分隔string,但不能用逗号分开。 无论如何修改上面的代码,以便我可以得到以下结果?
input :“abc,def,ghi”
输出 :
ABC
高清
GHI
#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'; }
也许这个代码将帮助你:
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 <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'; } }