ホームページ > バックエンド開発 > C++ > C でカンマ区切りの文字列から整数を効率的に抽出するにはどうすればよいですか?

C でカンマ区切りの文字列から整数を効率的に抽出するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 10:02:09
オリジナル
746 人が閲覧しました

How Can I Efficiently Extract Integers from a Comma-Separated String in C  ?

C でのカンマ区切り文字列からの数値データの抽出

カンマ区切り文字列から数値配列へのデータの解析は、プログラミングにおける一般的な課題となります。 。整数の特定のケースに対して、C はいくつかの直接的なアプローチを提供します。

基本的な解析アルゴリズム:

1 つの簡単な方法では、文字列を 1 文字ずつ反復処理します。文字ごとに、次の文字がカンマかどうかを確認します。その場合は、カンマを捨ててください。それ以外の場合は、文字を整数に変換し、配列に格納します。

isstringstream の使用:

C 標準ライブラリには、入力ストリームを解析するための istringstream クラスが用意されています。カンマ区切りの文字列から数値を抽出するには、その文字列を入力として使用して isstringstream オブジェクトを作成します。次に、ストリーム抽出演算子 >> を使用します。

実装:

次のコード スニペットは、isstringstream を使用した基本的な解析アルゴリズムを示しています。

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

int main()
{
    std::string str = "1,2,3,4,5,6";
    std::vector<int> vect;

    std::stringstream ss(str);

    for (int i; ss >> i;) {
        vect.push_back(i);    
        if (ss.peek() == ',')
            ss.ignore();
    }

    for (std::size_t i = 0; i < vect.size(); i++)
        std::cout << vect[i] << std::endl;

    return 0;
}
ログイン後にコピー

その他のオプション:

より複雑な場合解析シナリオでは、C 標準ライブラリには、strtok 関数や正規表現などの追加オプションが用意されています。ただし、単純なカンマ区切りの整数リストの場合、通常は上記のメソッドで十分であり、実装も簡単です。

以上がC でカンマ区切りの文字列から整数を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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