ホームページ >バックエンド開発 >C++ >C で strtok() を使用して std::string をトークン化するにはどうすればよいですか?

C で strtok() を使用して std::string をトークン化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-08 16:19:02705ブラウズ

How can I tokenize a std::string using strtok() in C  ?

strtok() を使用した std::string のトークン化

C を使用する場合、文字列をトークン化して、文字列をより小さな部分文字列またはトークンに分割することが望ましいことがよくあります。デリミタ。 C 関数 strtok() は文字列をトークン化するための一般的なオプションですが、 char* 入力が必要ですが、 C では std::string が推奨される文字列型です。この記事では、std::string で strtok() を使用する回避策を検討します。

トークン化に Istringstream を使用する

1 つの方法は、istringstream オブジェクトを使用して std::string を次のように変換することです。文字のストリーム。strtok() によってトークン化できます。例:

#include <iostream>
#include <string>
#include <sstream>

int main() {
    std::string myText("some-text-to-tokenize");
    std::istringstream iss(myText);
    std::string token;

    while (std::getline(iss, token, '-')) {
        std::cout << token << std::endl;
    }

    return 0;
}

この例では、istringstream iss が std::string myText から構築されます。次に、std::getline 関数を使用して、区切り文字 '-' を区切り文字として使用してストリームからトークンを抽出します。各トークンは、std::cout を使用してコンソールに出力されます。

代替アプローチ

応答で言及されているもう 1 つのオプションは、より柔軟なトークン化機能を提供する Boost ライブラリを使用することです。ただし、このソリューションでは、Boost ライブラリがシステムにインストールされている必要があります。

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

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