2

重複の可能性:
C++で複数の区切り文字を使用して文字列を単語に分割する

私は現在、各行に、バイナリツリーに挿入する必要のある主要な属性を区切るさまざまなタブとスペースがあるファイルを読み取ろうとしています。

私の質問は、STLのみを使用して複数の区切り文字を使用してラインアップを分割するにはどうすればよいですか?私は一日の大部分を無駄にするためにこれに頭を包み込もうとしてきました。

アドバイスをいただければ幸いです。

4

2 に答える 2

9

使用するstd::string::find_first_of

vector<string> bits;
size_t pos = 0;
size_t newpos;
while(pos != string::npos) {
    newpos = str.find_first_of(" \t", pos);
    bits.push_back(str.substr(pos, newpos-pos));
    if(pos != string::npos)
        pos++;
}
于 2012-10-26T01:58:00.033 に答える
3

string::find_first_of()[1]の使用:

int main ()
{
  string str("Replace the vowels in this sentence by asterisks.");
  size_t found;

  found = str.find_first_of("aeiou");
  while (found != string::npos) {
    str[found]='*';
    found=str.find_first_of("aeiou", found + 1);
  }

  cout << str << endl;

  return 0;
}
于 2012-10-26T01:57:26.117 に答える