Heim > Backend-Entwicklung > C++ > Wie kann ich mit std::remove() bestimmte Zeichen aus einer Zeichenfolge in C entfernen?

Wie kann ich mit std::remove() bestimmte Zeichen aus einer Zeichenfolge in C entfernen?

Patricia Arquette
Freigeben: 2024-11-15 11:16:02
Original
974 Leute haben es durchsucht

How can I remove specific characters from a string in C   using std::remove()?

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage