C で std::remove() を使用して文字列から特定の文字を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-15 11:16:02
オリジナル
921 人が閲覧しました

How can I remove specific characters from a string in C   using std::remove()?

C の文字列から特定の文字を削除する

ユーザー入力を処理するとき、削除する必要がある不要な文字に遭遇することがよくあります。たとえば、電話番号には、さらなる処理のために削除する必要がある括弧、ダッシュ、またはスペースが含まれている場合があります。

C には、この目的を達成するために使用できる文字列操作関数がいくつかあります。特に std::remove() 関数は、文字列から特定の文字を削除する強力な方法を提供します。

std::remove() を使用するには、単に文字列と文字を渡すだけです。引数として削除されます。この関数は、変更された文字列の末尾を指す反復子を返し、指定された文字のすべてのインスタンスが削除されていることを確認します。

電話番号から括弧、ダッシュ、スペースを削除する方法を示す例を次に示します。 string:

#include <iostream>
#include <algorithm>

int main() {
  // Get user input for phone number
  std::string phone;
  std::cout << "Enter phone number: ";
  std::cin >> phone;

  // Characters to remove
  char chars[] = "()- ";

  // Remove the specified characters using std::remove()
  for (unsigned int i = 0; i < strlen(chars); ++i) {
    phone.erase(std::remove(phone.begin(), phone.end(), chars[i]), phone.end());
  }

  // Output the modified phone number
  std::cout << "Cleaned phone number: " << phone << std::endl;

  return 0;
}
ログイン後にコピー

この例では、ループ内で std::remove() 関数を使用して、指定された各文字を一度に 1 つずつ削除します。結果の文字列は、phone 変数に保存され、コンソールに出力されます。

再利用可能にするために、削除ロジックを関数にカプセル化することもできます。

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

int main() {
  std::string phone;
  std::cout << "Enter phone number: ";
  std::cin >> phone;

  char chars[] = "()- ";

  removeCharsFromString(phone, chars);

  std::cout << "Cleaned phone number: " << phone << std::endl;

  return 0;
}
ログイン後にコピー

この関数は文字列参照を受け取り、文字配列を入力として使用し、指定された文字が出現するすべてを削除します。あらゆる種類の文字列入力を簡単にクリーンアップするために使用できます。

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

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