Bestimmte Zeichen aus Zeichenfolgen in C entfernen
Beim Umgang mit Benutzereingaben stößt man häufig auf unerwünschte Zeichen, die entfernt werden müssen. Beispielsweise kann eine Telefonnummer Klammern, Bindestriche oder Leerzeichen enthalten, die zur weiteren Verarbeitung entfernt werden müssen.
In C gibt es mehrere Funktionen zur Zeichenfolgenmanipulation, mit denen dieses Ziel erreicht werden kann. Insbesondere die Funktion std::remove() bietet eine leistungsstarke Möglichkeit, bestimmte Zeichen aus einer Zeichenfolge zu entfernen.
Um std::remove() zu verwenden, müssen Sie lediglich die Zeichenfolge und das Zeichen an übergeben als Argumente entfernt werden. Die Funktion gibt einen Iterator zurück, der auf das Ende der geänderten Zeichenfolge zeigt, um sicherzustellen, dass alle Instanzen des angegebenen Zeichens entfernt wurden.
Hier ist ein Beispiel, das zeigt, wie Klammern, Bindestriche und Leerzeichen aus einer Telefonnummer entfernt werden string:
#include <iostream> #include <algorithm> int main() { // Get user input for phone number std::string phone; std::cout << "Enter phone number: "; std::cin >> phone; // Characters to remove char chars[] = "()- "; // Remove the specified characters using std::remove() for (unsigned int i = 0; i < strlen(chars); ++i) { phone.erase(std::remove(phone.begin(), phone.end(), chars[i]), phone.end()); } // Output the modified phone number std::cout << "Cleaned phone number: " << phone << std::endl; return 0; }
In diesem Beispiel wird die Funktion std::remove() innerhalb einer Schleife verwendet, um jedes angegebene Zeichen einzeln zu entfernen. Die resultierende Zeichenfolge wird in der Telefonvariablen gespeichert und an die Konsole ausgegeben.
Sie können die Entfernungslogik zur Wiederverwendbarkeit auch in eine Funktion kapseln:
void removeCharsFromString(std::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()); } } int main() { std::string phone; std::cout << "Enter phone number: "; std::cin >> phone; char chars[] = "()- "; removeCharsFromString(phone, chars); std::cout << "Cleaned phone number: " << phone << std::endl; return 0; }
Diese Funktion akzeptiert eine Zeichenfolgenreferenz und ein Zeichenarray als Eingabe und entfernt alle Vorkommen der angegebenen Zeichen. Es kann problemlos zum Bereinigen jeder Art von Zeichenfolgeneingabe verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit std::remove() bestimmte Zeichen aus einer Zeichenfolge in C entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!