解析字符串格式的字符串|如何

时间:2011-05-17 08:27:54

标签: c++ string parsing

我有;

 string  str = "";
在str中,我存储数据的格式为“_:_,_” “_”可以只是像“X”这样的单词,也可以是像“sds 23 dsds 1”这样的单词组合

我希望他们将其解析为三个不同的字符串;

in str       : X:y dfj kd kk,sdd 12 89 ++
string parsed[i] ;
in parsed[0] : X
in parsed[1] : y dfj kd kk
in parsed[2] : sdd 12 89 ++

如何使用c ++ std :: string功能

2 个答案:

答案 0 :(得分:1)

您可以使用以下std:string方法拆分字符串,例如:

size_t index1 = str.find( ":" ) + 1;
size_t index2 = str.find( ",", index1 ) + 1;

std::string sub1 = str.substr (0, index1-1);
std::string sub2 = str.substr (index1, index2-index1-1);
std::string sub3 = str.substr (index2, str.length()-index2);

答案 1 :(得分:0)

使用boost/algorithm/string.hpp

std::string str = "X:y dfj kd kk,sdd 12 89 ++"
std::vector<std::string> v;
boost::split(v, str, boost::is_any_of(":,"));

您也可以将它用于多字节字符串。

相关问题