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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 05:50:02518ブラウズ

How to Remove Specific Characters from Strings in C  ?

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

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