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

Wie entferne ich bestimmte Zeichen aus einer Zeichenfolge in C?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 03:04:09951Durchsuche

How to Remove Specific Characters from a String in C  ?

Entfernen bestimmter Zeichen aus einer Zeichenfolge in C

In Programmierszenarien, in denen Benutzereingaben möglicherweise unerwünschte Zeichen enthalten, die entfernt werden müssen, wie z Beim Sammeln einer Telefonnummer stellt sich die Frage: Wie können wir diese Zeichen effektiv aus einer Zeichenfolge in C entfernen?

Die eingebauten Zeichenfolgenfunktionen B. „Entfernen“, „Suchen“ und „Ersetzen“, sind zwar in bestimmten Situationen nützlich, bieten jedoch möglicherweise nicht die gewünschte Funktionalität, wenn es darum geht, bestimmte Zeichen basierend auf ihrem Inhalt aus einer Zeichenfolge zu entfernen.

Die Lösung liegt in der Verwendung von std::remove-Funktion aus der -Bibliothek. Dieser Algorithmus benötigt drei Argumente: einen Startiterator (den Anfang der Zeichenfolge), einen Enditerator (das Ende der Zeichenfolge) und einen zu entfernenden Wert.

Um dies auf unser Beispiel des Entfernens von Klammern anzuwenden , Bindestriche und Leerzeichen aus einer Telefonnummerneingabe können wir ein Zeichenarray definieren, das diese Zeichen enthält:

char[] chars = "() -";

Wir durchlaufen jedes Zeichen im Array und wenden es an std::remove zur Telefonnummernzeichenfolge:

for (unsigned int i = 0; i < strlen(chars); ++i) {
  str.erase(std::remove(str.begin(), str.end(), chars[i]), str.end());
}

Dadurch werden effektiv alle Vorkommen der angegebenen Zeichen aus der Zeichenfolge entfernt, wodurch effektiv die gewünschte Ausgabe bereitgestellt wird.

Um die Lösung weiter zu verbessern, kann die Funktionalität in eine wiederverwendbare Funktion gekapselt werden:

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

Jetzt können wir sie einfach aufrufen Mit dieser Funktion können Sie unerwünschte Zeichen aus beliebigen Zeichenfolgen entfernen. Um beispielsweise Klammern aus einer Telefonnummer zu entfernen:

removeCharsFromString(phone, "()");

Durch die Verwendung von std::remove und die Implementierung in einer wiederverwendbaren Funktion haben wir eine effiziente Lösung zum Entfernen bestimmter Zeichen aus einer Zeichenfolge in C Datenverarbeitung und -manipulation bequemer.

Das obige ist der detaillierte Inhalt vonWie entferne ich bestimmte Zeichen aus einer Zeichenfolge 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