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

C で文字列から特定の文字を削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 03:04:09953ブラウズ

How to Remove Specific Characters from a String in C  ?

C での文字列からの特定の文字の削除

ユーザー入力に、削除する必要がある望ましくない文字が含まれる可能性があるプログラミング シナリオ:電話番号を収集するときに、C の文字列からこれらの文字を効果的に削除するにはどうすればよいかという疑問が生じます。 ?

削除、検索、置換などの組み込みの文字列関数は、特定の状況では便利ですが、その内容に基づいて文字列から特定の文字を削除する場合には、必要な機能が提供されない場合があります。

解決策は、std::remove 関数を利用することにあります。 ライブラリ。このアルゴリズムは、開始反復子 (文字列の先頭)、終了反復子 (文字列の末尾)、および削除する値の 3 つの引数を受け取ります。

これを括弧を削除する例に適用するには、次のとおりです。電話番号入力のダッシュ、スペースを使用すると、次の文字を含む文字配列を定義できます。

char[] chars = "() -";

配列内の各文字を反復処理して、 std::remove を電話番号文字列に追加します:

for (unsigned int i = 0; i < strlen(chars); ++i) {
  str.erase(std::remove(str.begin(), str.end(), chars[i]), str.end());
}

これにより、指定された文字が文字列からすべて削除され、目的の出力が効果的に得られます。

ソリューションをさらに強化するには、機能を再利用可能な関数にカプセル化できます。

void removeCharsFromString(string &str, char* charsToRemove) {
  for (unsigned int i = 0; i < strlen(charsToRemove); ++i) {
    str.erase(remove(str.begin(), str.end(), charsToRemove[i]), str.end());
  }
}

ここで、この関数を簡単に呼び出して、任意の文字列から不要な文字を削除できます。たとえば、電話番号から括弧を削除するには:

removeCharsFromString(phone, "()");

std::remove を利用し、再利用可能な関数に実装することで、C の文字列から特定の文字を削除する効率的なソリューションが得られます。データの処理と操作がより便利になります。

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

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