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

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

DDD
リリース: 2024-11-16 15:58:03
オリジナル
176 人が閲覧しました

How Can You Split Strings with Multiple Delimiters in C  ?

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

テキストを意味のある単位に分割するというタスクを課された開発者は、文字列を単語に分割する必要に遭遇することがよくあります。単一の区切り文字の場合は従来の方法で十分ですが、複数の区切り文字が関係する場合はどのようなオプションが利用できますか?

この課題に対処するために、文字列の分割に複数の区切り文字を使用する手法を実装できます。解決策を詳しく見てみましょう。

C では、文字列ストリームを使用して単一の区切り文字を持つ文字列を解析するための構文は次のとおりです。

std::stringstream stringStream(inputString);
std::string word;
while(std::getline(stringStream, word, delimiter)) 
{
    wordVector.push_back(word);
}
ログイン後にコピー

複数の区切り文字に対応するには、まず次のようにします。行全体をバッファに入れます。続いて、その行を反復処理して、指定された区切り文字のいずれかが出現する位置を特定します。現在の区切り文字の位置から前の位置を減算することで、単語を表す部分文字列を取得し、それを単語ベクトルに追加します。

たとえば、区切り文字としてスペース、アポストロフィ、セミコロンを選択すると、次のコードはタスクを実行します:

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) 
{
    std::size_t prev = 0, pos;
    while ((pos = line.find_first_of(" ';", 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));
}
ログイン後にコピー

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

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