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 &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!