1. ホーム
  2. c++

[解決済み] C++で文字列から特定の文字を削除するには?

2022-11-05 12:57:03

質問

例えば、ユーザーが電話番号を入力する場合。

cout << "Enter phone number: ";
INPUT: (555) 555-5555
cin >> phone;

私は、文字列から "(", ")" および "-" 文字を削除したいです。私は文字列の削除、検索、および置換関数を調べましたが、私はそれらが位置に基づいて動作することだけを見ました。

たとえば、"(") という文字を渡して、文字列内のすべてのインスタンスを削除させるために使用できる文字列関数はありますか?

どのように解決するのですか?

   string str("(555) 555-5555");

   char chars[] = "()-";

   for (unsigned int i = 0; i < strlen(chars); ++i)
   {
      // you need include <algorithm> to use general algorithms like std::remove()
      str.erase (std::remove(str.begin(), str.end(), chars[i]), str.end());
   }

   // output: 555 5555555
   cout << str << endl;

として使用する場合 機能 :

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() );
   }
}
//example of usage:
removeCharsFromString( str, "()-" );