ホームページ > バックエンド開発 > C++ > 複数の区切り文字を使用して文字列を分割するにはどうすればよいですか?

複数の区切り文字を使用して文字列を分割するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-11 04:03:03
オリジナル
493 人が閲覧しました

How to Split Strings with Multiple Delimiters?

複数の区切り文字による文字列の分割 [重複]

テキスト処理では、文字列を個々の単語またはトークンに分割する必要がよくあります。標準の文字列分割手法は単一の区切り文字の処理には優れていますが、複数の区切り文字を使用するとタスクはより困難になります。

問題:

文字列と区切り文字のセットが与えられた場合、どのようにするか指定されたすべての区切り文字を考慮しながら文字列を単語に分割できますか?

解決策:

複数の区切り文字を使用して文字列を効果的に分割するには、文字列ストリームの組み合わせを利用します。および部分文字列操作。提供されているコードの修正バージョンを次に示します。

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) {
    std::size_t prev = 0, pos;
    auto delimiters = " ';";  // Customize delimiter string here
    while ((pos = line.find_first_of(delimiters, prev)) != std::string::npos) {
        if (pos > prev)
            wordVector.push_back(line.substr(prev, pos-prev));
        prev = pos+1;
    }
    if (prev < line.length())
        wordVector.push_back(line.substr(prev, std::string::npos));
}
ログイン後にコピー

説明:

  • std::getline を使用して、入力文字列の各行を反復処理します。
  • 行ごとに、std::find_first_of を使用して行内の最初の区切り文字の位置を特定します。
  • 区切り文字が見つかった場合は、前の区切り文字と区切り文字の間に部分文字列を追加します。
  • その後、区切り文字の後の文字を指すように prev を更新します。
  • 行全体を処理した後、空でない場合は残りの部分文字列を wordVector に追加します。

以上が複数の区切り文字を使用して文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート