ホームページ  >  記事  >  バックエンド開発  >  std::getline() を使用して C で文字列をトークンに分割する方法は?

std::getline() を使用して C で文字列をトークンに分割する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-20 16:38:11672ブラウズ

How to Split a String into Tokens in C   Using std::getline()?

C std::string を使用した文字列トークンの分離

この質問は、C std::string を複数のトークンに分割するという課題に対処します。特に区切り文字「;」を使用します。提案されているソリューションの中には Boost などの外部ライブラリを使用するものもありますが、このプロジェクトのガイドラインではその使用を禁止しています。したがって、C 標準ライブラリを使用した、より直接的なアプローチを検討します。

効果的な方法の 1 つは、区切り文字の指定に多用途性を提供する std::getline() 関数を利用することです。この場合、次のようにトークン化プロセスを実装できます:

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

using namespace std;

int main() {
    vector<string> strings; // Vector to store split strings
    istringstream f("denmark;sweden;india;us"); // Input stringstream
    string s; // Variable to store individual strings

    while (getline(f, s, ';')) {
        cout << s << endl; // Display split string
        strings.push_back(s); // Store string in vector
    }
}

この実装では、入力文字列「denmark;sweden;india;us」から stringstream を作成します。 std::getline() 関数は、stringstream を反復処理し、「;」で区切られたトークンを取得するために使用されます。デリミタ。取得された各トークンは出力され、さらに処理するために文字列ベクトルに追加されます。

このアプローチを採用することで、指定されたガイドラインに準拠し、外部ライブラリに依存せずに入力文字列の望ましいトークン化を実現します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。