ホームページ  >  記事  >  バックエンド開発  >  strtok() を使用してエラーなしで C 文字列をトークン化する方法

strtok() を使用してエラーなしで C 文字列をトークン化する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 13:03:02595ブラウズ

How to Tokenize a C   String Using strtok() Without Errors?

strtok() を使用した C 文字列のトークン化

std::string で strtok() を使用して文字列をトークン化するには、変換する必要がありますそれを C スタイルの文字列 (char) に変換します。ただし、str.c_str() を使用して std::string を const char に直接変換すると、エラーが発生する可能性があります。

解決策 1: isstringstream を使用する

別のアプローチは、istringstream を使用して std::string から読み取ることです。以下に例を示します。

#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 をループし、getline() で指定された区切り文字に基づいて文字列をトークンに分割します。

解決策 2: Boost を使用するToolkit

または、Boost ツールキットのトークナイザー クラスを使用して、トークン化パラメータの柔軟性と制御を向上させることもできます。以下はブーストを使用した例です:

#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>

int main() {
    std::string myText("some-text-to-tokenize");
    boost::tokenizer<> tokenizer(myText, "-");
    for (auto token : tokenizer) {
        std::cout << token << std::endl;
    }
    return 0;
}

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

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