ホームページ > バックエンド開発 > C++ > C で std::getline() を使用してトークンを含む文字列を分割するにはどうすればよいですか?

C で std::getline() を使用してトークンを含む文字列を分割するにはどうすればよいですか?

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

How can std::getline() be used to split strings with tokens in C  ?

getline() を使用して文字列をトークンで分割する

C で文字列を扱う場合、文字列をより小さなセグメントに分割する必要があります。特定の区切り文字について。これを実現する一般的な方法の 1 つは、std::getline() 関数を使用することです。この関数は、トークン化された区切り文字に基づいて部分文字列を抽出する柔軟な方法を提供します。

指定されたシナリオでは、区切られた単語で構成される文字列があります。セミコロンを使用すると、std::getline() を使用して文字列を個々のコンポーネントに効率的に分割できます。次のコード スニペットは、これを実装する方法を示しています。

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> strings;
    istringstream f("denmark;sweden;india;us");
    string s;    
    while (getline(f, s, ';')) {
        cout << s << endl;
        strings.push_back(s);
    }
}
ログイン後にコピー

このコードでは、分割された文字列を格納するベクトルを作成することから始めます。次に、ターゲット文字列「denmark;sweden;india;us」を istringstream オブジェクトに渡します。これにより、文字列をストリームとして扱うことができます。

重要な操作は、getline() を使用してストリームの最後に到達するまで部分文字列を抽出します。 getline() 関数は、入力ストリーム、抽出された部分文字列を格納する文字列への参照、および区切り文字という 3 つのパラメータを取ります。この場合、セミコロンを区切り文字として使用し、出現するたびに文字列を分割します。

ループ内で、getline() を呼び出して各部分文字列を取得し、文字列変数 s に格納します。次に、確認のために部分文字列を出力し、さらなる処理のためにそれを文字列ベクトルに追加します。

このアプローチに従うことで、トークンまたは区切り文字に基づいて文字列を効果的に分割でき、必要に応じて個々のセグメントを処理しやすくなります。 .

以上がC で std::getline() を使用してトークンを含む文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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