嗨朋友们,我需要拆分一个包含逗号分隔值的字符串,并且必须将每个值存储到变量中以便在程序中进一步使用。我的代码如下:但是 我的代码中出现错误:
string myString = ........// i am getting the string from a function
string::iterator it = myString .begin();
while ( it != myString .end() )
{
if ( *it == ',' )
{
string element =*it++; //i can't do such type of conversion.but then how can
i get each value ?
if(element.empty())
{
}
}
}
答案 0 :(得分:4)
我建议使用一些可用的库作为提升字符串实用程序http://www.boost.org/doc/libs/1_46_1/doc/html/string_algo.html
如果你需要手动实现它,我不会使用迭代器,而是std::string::find
来获取每个元素的起始位置和结束位置,然后std::string::substr
。
答案 1 :(得分:1)
您可以按照以下方式执行
#include <iostream>
#include <sstream>
#include <string>
std::string String = "Your,String,is,here";
char Separator = ',';
std::istringstream StrStream(String);
std::string Token;
while(std::getline(StrStream, Token, Separator))
{
std::cout << Token << "\n";
}
答案 2 :(得分:0)