2011-07-08 30 views
4

私はこの単純な問題に悩まされています。 文字列[0-9]から構成されているとします。私がしたいのは、boost :: splitを使って文字列を文字列に分割することです。私は[0] "0" が含まれているstr2のように何かを探していboost :: split:文字列を文字と分割する方法は?

std::string str = "0102725"; 
std::vector<std::string> str2; 
boost::split(str2, str, boost::is_any_of(SOMETHING)); 

、STR2は、[1] "1" が含まれ、STR2 [2]ように "0" が含まれています。これまで私は "、": "と": "を試しましたが、運はありませんでした...

答えて

7

はそれほど大変です。

+0

'std :: string'のコンストラクタのどれが' str.at(i) 'がトリガすると思いますか? ;-) –

+0

:-)コードを修正しました。申し訳ありません。 – Mat

+0

甘い。シンプルで実用的なアプローチで+1してください。 –

3

@ Matのアプローチは別として、ここに取り上げます。あなたは、あなたが望まないかもしれない文字を分離する

vector<string> str2; // acquires character + extra space for '\0' 

むしろ、ここで

vector<char> str2; // only single character 

は、あなたが代わりにそれを行うことができる方法ですされているので:

for(unsigned int i = 0; i < str.size(); i++) 
    str2.push_back(str[i]); 

Demo。必要に応じてstr2[i]にアクセスできます。

+0

代わりのアプローチをありがとう。 – cheese55