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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-27 17:36:14278ブラウズ

How Can I Efficiently Separate Comma-Delimited Strings in C  ?

Stringstream を使用したカンマ区切りの文字列の分離

提供された問題では、タスクはカンマ区切りの文字列を個々のトークンに分割することです。 stringstream::operator は単語をスペースで簡単に区切ることができますが、コンマに関しては不十分です。

この課題を克服するために、次のような修正されたアプローチを採用します。

#include <iostream>
#include <sstream>

int main() {
  std::string input = "abc,def,ghi";
  std::istringstream ss(input);
  std::string token;

  // Use getline to separate by commas
  while (std::getline(ss, token, ',')) {
    std::cout << token << '\n';
  }

  return 0;
}

この例では変更されたコード:

  • 代わりに std::getline を使用します。 std::stringstream::operator>>。 getline は、指定された区切り文字 (この場合はカンマ) までの部分文字列を抽出できます。
  • トークンが見つからなくなるまで入力ストリームを繰り返します。
  • 各トークンについて、それを出力します。
  • 出力では、入力文字列が個々の文字列に正確に分離されます。トークン:

    abc
    def
    ghi

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

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