Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich bestimmte Zeichen aus Zeichenfolgen in C?

Wie entferne ich bestimmte Zeichen aus Zeichenfolgen in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 05:50:02437Durchsuche

How to Remove Specific Characters from Strings in C  ?

Bestimmte Zeichen aus Zeichenfolgen in C entfernen

Viele Anwendungen erfordern die Manipulation von Benutzereingaben, und das Entfernen unerwünschter Zeichen aus Zeichenfolgen ist eine häufige Aufgabe. In diesem Artikel wird erläutert, wie Sie diese Aufgabe in C effizient lösen können.

Problemstellung:

Stellen Sie sich ein Szenario vor, in dem ein Benutzer eine Telefonnummer eingibt:

cout << "Enter phone number: ";
string phone;
cin >> phone;

Die Roheingabe kann zusätzliche Zeichen wie Klammern und Bindestriche enthalten: „(555) 555-5555“. Das Ziel besteht darin, diese Zeichen zu entfernen, um eine saubere numerische Zeichenfolge zu erhalten.

Lösung:

Die C-Standardbibliothek bietet eine praktische Methode, um dies zu erreichen. Der std::remove-Algorithmus durchläuft eine Zeichenfolge und entfernt Instanzen eines angegebenen Zeichens. Die ursprüngliche Zeichenfolge wird jedoch nicht direkt geändert.

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;

Funktionsbasierter Ansatz:

Zur Vereinfachung der Verwendung können Sie eine Funktion definieren, die Folgendes übernimmt eine Zeichenfolge und ein Zeichenarray als Eingaben und führt die Zeichenentfernung durch:

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());
  }
}

Diese Funktion kann dann mit den gewünschten Zeichenfolgen aufgerufen werden, um bestimmte Zeichen zu entfernen. Zum Beispiel:

string phone = "(555) 555-5555";
removeCharsFromString(phone, "()-" );

Das obige ist der detaillierte Inhalt vonWie entferne ich bestimmte Zeichen aus Zeichenfolgen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn