分裂字符串

时间:2011-05-04 10:38:15

标签: c++

  

可能重复:
  C++: How to split a string?

嗨朋友们,我需要拆分一个包含逗号分隔值的字符串,并且必须将每个值存储到变量中以便在程序中进一步使用。我的代码如下:但是 我的代码中出现错误:

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())
             {
             }
         } 
 }

3 个答案:

答案 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)

此前已在此处回答,

C++ ostream out manipulation

我认为在SO上必须有更优雅的解决方案,但这个至少包括单元测试:)