разбор строки относительно формата строки | как - PullRequest
1 голос
/ 17 мая 2011

у меня есть;

 string  str = "";

в str, я храню данные в следующей форме "_: _, _" "_" может быть просто словом типа "X" или набором слов типа "a 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 ]

1 голос
/ 17 мая 2011

Вы можете разделить вашу строку, используя следующие методы 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);
0 голосов
/ 17 мая 2011

Использование 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(":,"));

Вы также можете использовать его для многобайтовых строк.

...