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 サイトの他の関連記事を参照してください。