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

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

Patricia Arquette
リリース: 2024-12-14 13:52:12
オリジナル
298 人が閲覧しました

How Can I Efficiently Remove Spaces from Strings in C  ?

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

C プログラミングの領域では、文字列の操作は基本的なタスクです。よくある課題の 1 つは、文字列からスペースを削除することです。文字を反復処理して新しい文字列を再構築することは実行可能なオプションですが、より効率的なアプローチが存在します。

推奨される方法は、関数 remove_if を利用することです。 >isspaceremove_if は 2 つのイテレータと述語をパラメータとして受け取ります。述語を満たす要素をコンテナから削除し、それに応じて残りの要素をシャッフルします。

文字列からスペースを削除するには、次のコードを使用できます。

remove_if(str.begin(), str.end(), isspace);
ログイン後にコピー
ただし、これのみです。文字列内の要素をシャッフルします。それらを完全に削除するには、

string::erase:

str.erase(remove_if(str.begin(), str.end(), isspace), str.end());
ログイン後にコピー

remove_if を呼び出す必要があります。これにより、データのコピーが 1 つだけ作成されるようになり、効率が向上します。参考までに、remove_if の実装例を以下に示します。

このメソッドを使用すると、C コードの文字列からスペースを効率的かつ便利に削除でき、テキスト操作タスクを合理化できます。
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 サイトの他の関連記事を参照してください。

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