ホームページ >バックエンド開発 >C++ >C 文字列からスペースを効率的に削除するにはどうすればよいですか?

C 文字列からスペースを効率的に削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 08:34:09495ブラウズ

How Can I Efficiently Remove Spaces from C   Strings?

C 文字列からの効率的なスペースの削除

C 文字列からのスペースの削除は、文字列操作の一般的なタスクです。手動で文字を反復処理することもできますが、より効率的な方法があります。

推奨される方法には、強力な標準ライブラリ アルゴリズムの Remove_if と isspace 述語が含まれます。 Remove_if は、指定された条件に基づいてシーケンスから要素を削除し、一方、isspace は空白文字をチェックします。

これを利用するには、次のように呼び出します。

remove_if(str.begin(), str.end(), isspace);

この操作だけでは、文字列の長さに応じて要素が再配置されます。長さを調整するには、string::erase:

str.erase(remove_if(str.begin(), str.end(), isspace), str.end());

remove_if を使用します。これにより、データの複数のコピーが回避され、非常に効率的になります。簡略化された実装は次のとおりです:

template<typename T, typename P>
T remove_if(T beg, T end, P pred)
{
    T dest = beg;
    for (T itr = beg;itr != end; ++itr)
        if (!pred(*itr))
            *(dest++) = *itr;
    return dest;
}

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

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