字符串的拆分

Splitting of string

本文关键字:拆分 字符串      更新时间:2023-10-16

可能重复:
C++:如何拆分字符串?

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

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

我建议使用一些可用的库作为boost字符串实用程序http://www.boost.org/doc/libs/1_46_1/doc/html/string_algo.html

如果您需要手动实现它,我不会使用迭代器,而是使用std::string::find来获得每个元素的开始和结束位置,然后使用std::string::substr

您可以简单地执行以下

#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";
}

以前在这里回答过,

C++ostream out操作

我确实认为在SO上肯定有更优雅的解决方案,但这一个至少包括单元测试:(