C の文字列から特定の文字を削除する
多くのアプリケーションではユーザー入力を操作する必要があり、文字列から不要な文字を削除するのは一般的なタスクです。この記事では、C でこのタスクを効率的に実行する方法について説明します。
問題ステートメント:
ユーザーが電話番号を入力するシナリオを考えてみましょう:
cout << "Enter phone number: "; string phone; cin >> phone;
生の入力には、括弧やダッシュなどの追加の文字が含まれる場合があります: "(555) 555-5555"。目的は、これらの文字を削除してきれいな数値文字列を取得することです。
解決策:
C 標準ライブラリは、これを実現する便利な方法を提供します。 std::remove アルゴリズムは文字列を反復処理し、指定された文字のインスタンスを削除します。ただし、元の文字列は直接変更されません。
string str("(555) 555-5555"); char charsToRemove[] = "()-"; // Characters to be removed for (unsigned int i = 0; i < strlen(charsToRemove); ++i) { str.erase(std::remove(str.begin(), str.end(), charsToRemove[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(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end()); } }
この関数は、必要な文字列を使用して呼び出すことができます。特定の文字を削除します。例:
string phone = "(555) 555-5555"; removeCharsFromString(phone, "()-" );
以上がC の文字列から特定の文字を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。