私はcurlperformからヘッダーを読み取り、特定のヘッダーを検索し、見つかった場合はコンテンツ部分をgunzipして、コンテンツ内の別の文字列を検索するプログラムに取り組んでいます。最後の部分を実装する必要があります。残りは行われます。C ++プログラム内からコンテンツを解凍し、結果を別の文字列に保存してその文字列を検索する方法はありますか?
コードスニペットが良いでしょう。ありがとう。
BoostIostreamsを使用します。buf
がgzipで圧縮されたデータを含む文字列の場合、
namespace io = boost::iostreams;
io::filtering_istream gunzip;
gunzip.push(io::gzip_decompressor());
gunzip.push(std::istringstream(buf));
次に、から読み取りますgunzip
。
自分でgunzipを実装する以外に、実際のgunzipプログラムへのexecv()呼び出しを使用して、出力をstdoutに返します(これはプログラムに渡されます)。また、文字列検索は、おそらくクヌース-モリス-プラットアルゴリズムを使用して行うのが最適です。