Entfernen Sie Leerzeichen von String C ++

Entfernen Sie Leerzeichen von String C ++
Unsere Daten können von Zeit zu Zeit zusätzliche Leerzeichen enthalten, was zu Problemen während der Datenanalyse führen kann. Wenn die Notwendigkeit entsteht, ist es nützlich. Hier sind einige Erklärungen, warum Räume aus Saiten entfernt werden sollten:
  • Unnötige Räume am Start, Ende und sogar in der Mitte
  • Versuchen Sie herauszufinden, wie viele Charaktere es in einer Zeichenfolge gibt
  • Versuch, eine Reihe von Saiten zu organisieren
  • Wenn zwei Saiten verglichen werden
  • Hinzufügen einer URL zu einer Seite

Wenn unser C ++ - Code während der Durchführung eines dieser vorherigen Operationen auf Leerzeichen trifft, erhalten wir unerwartete Ergebnisse, wie z. Standardmäßig gelten diese als Whitespace -Zeichen, ich.e., "\ N", "\ t", "", "\ v", "\ r", "f".

Es ist manchmal wichtig, Platz aus Strings in der Programmierung zu entfernen, um unerwartete Ergebnisse zu vermeiden. Erfahren Sie, wie Sie Leerzeichen von Saiten entfernen und mit zusätzlichen Räumen mit diesem Artikel fertig werden.

Beispiel 1: Verwenden der :: isspace -Methode zum Entfernen von Whitespaces aus der Zeichenfolge in c++

Um Whitespace -Zeichen aus STD :: Strings zu extrahieren, besteht der gemeinsame Ansatz darin, das std :: zu verwenden, wenn Methode. Der STD :: REME_IF-Algorithmus beseitigt Zeichen nicht effektiv aus der Zeichenfolge, sondern bewegt alle Zeichen mit den Nicht-Whitespaces nach vorne und erzeugt einen Iterator, der sich auf das Ende bezieht. Die Methode STD :: REMET_IF benötigt ein Prädikat, das entscheidet, welche Zeichen aus der Zeichenfolge löschen sollen.

Die ISSPACE () -Methode ist die im CCType -Header angegeben und sucht nach Whitespace -Zeichen, die vom installierten C -Gebietsschema kategorisiert sind.

Das folgende Beispiel beginnt mit der Hauptfunktion. Die String -Deklaration der Standard -String -Klasse ist in der Hauptmethode definiert. Die String -Variable wird als „STR“ definiert und mit der Zeichenfolge initialisiert, die die Whitespace -Zeichen enthält. Um die Whitespaces aus der Saite zu entfernen, haben wir das normale Löschverfahren verwendet.

Wir haben die STD :: REMED_IF -Methode verwendet. In der STD :: REMET_IF -Methode haben wir die Funktion „:: isspace“ in einer Suche nach einem Whitespace -Zeichen in einer bestimmten Zeichenfolge übergeben. Die Zeichenfolge nach dem Entfernen der Whitespaces wird auf dem folgenden Bildschirm gedruckt:

#enthalten
#enthalten
#enthalten
#enthalten
int main ()

std :: string str = "c \ n \ nplusplus";
str.löschen (std :: remove_if (str (str).begin (), str.end (), :: isspace), str.Ende());
std :: Cout<< "String:"<< str<<"\n";
Rückkehr 0;

Wie Sie sehen können, finden Sie in der folgenden angezeigten Zeichenfolge kein Whitespace -Zeichen:

Beispiel 2: Verwenden der STD :: Isspace -Methode zum Entfernen von Whitespaces aus der Zeichenfolge in c++

In diesem Beispiel verwenden wir die Standard -Bind -Methode, um die Whitespace aus der Zeichenfolge zu entfernen, indem wir die Funktion STD :: ISSPACE aufrufen. Anstatt von der Klassifizierung von Whitespace -Charakteren durch den C -Gebietsschale abhängig zu sein, können wir std :: isspace im Header -Gebietsschema verwendet, wo der CTYPE -Aspekt des angegebenen Gebiets die Whitespace -Zeichen klassifiziert.

Wenn Sie eine Funktion mit Platzhaltern binden, können Sie die Position und Menge der Werte ändern, die die Funktion verwendet, wodurch die Funktion basierend auf dem gewünschten Ergebnis geändert wird.

Die Zeichenfolge ist im Haupt-. Hier haben wir die ERASE -Methode für die Zeichenfolge „str_n“ aufgerufen, bei der zwei Funktionen verwendet werden. Beachten Sie, dass wir STD :: ISSPACE in der BIND -Funktion verwendet haben, um Whitespace in der Zeichenfolge zu finden. Anschließend wird die Löschmethode Whitespace aus der Zeichenfolge entfernt und eine neue Ergebniszeichenfolge zurückgibt.

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
int main ()

std :: string str_n = "White \ n \ nspaces";
str_n.löschen (std :: remove_if (str_n.Start(),
str_n.Ende(),
std :: bind (std :: isspace,
std :: Platzhalter :: _ 1,
std :: Locale :: Classic ()
)),
str_n.Ende());
std :: Cout<< "String:"<Rückkehr 0;

Nach dem Kompilieren des vorherigen Programms zeigt die Shell die Nicht-Whitespace-Zeichen an.

Beispiel 3: Verwenden der Unary -Methode zum Entfernen von Whitespaces aus der Zeichenfolge in C++

Anstatt :: isspace oder std :: isspace zu verwenden, können wir eine benutzerdefinierte Bedingung erstellen, die true zurückgibt, wenn das Zeichen ein Whitespace -Zeichen oder sonst falsch ist. Wir haben unsere unäre Methode erstellt, um Whitespace -Zeichen aus der Zeichenfolge zu entfernen.

Wir haben eine unäre Methode „Myfunktion“ des Datentyps bool erstellt. Die Funktion wurde mit dem Argument der nicht signierten Zeichenvariablen „mychar“ übergeben. In der Funktion haben wir eine Rückgabebedingung, die das angegebene Whitespace -Zeichen zurückgibt, wenn es in der Zeichenfolge gefunden wird.

Dann haben wir die Hauptfunktion, bei der die Zeichenfolge als „MyString“ erzeugt wird und die Zeichenfolgezeichen mit Whitespace -Zeichen enthält. Die Löschmethode wird im Folgenden in der String -Erklärung verwendet.

#enthalten
#enthalten
#enthalten
bool myfunction (unsigned char mychar)
return (mychar == "|| mychar == '\ n' || mychar == '\ r' ||
Mychar == '\ t' || Mychar == '\ v' || MyChar == '\ f');

int main ()

std :: string mystring = "mc \ n \ ndonald";
Mystring.löschen (std :: remove_if (mystring.begin (), mystring.end (), myfunction), mystring.Ende());
std :: Cout<< "String:" <Rückkehr 0;

Die resultierende Zeichenfolge hat alle nicht-Whitespace-Zeichen im folgenden Shell-Bildschirm:

Beispiel 5: Verwenden der Regex -Methode zum Entfernen von Whitespaces aus der Zeichenfolge in c++

Die Regex ersetzen () -Methode ersetzt ein reguläres Ausdrucksmuster durch eine Zeichenfolge, die Whitespace -Zeichen enthält. Lassen Sie uns es mit der Beispieldemonstration diskutieren.

Das C ++ - Programm enthält eine Regex -Datei im Abschnitt Header, um auf die Funktion regex_replace im Programm zuzugreifen. Das INT -Haupt ist definiert, das eine integrale String -Darstellung mit den Whitespace -Zeichen in einer String -Variable „Stringis“ aufweist. Anschließend haben wir die Regex -Funktion in einer gestrandeten Regex -Darstellung bezeichnet und die String -Variable "Stringis" mit dem "+" -Operator übergeben. Die Funktion regex_replace wird über die variable Zeichenfolge „Stringis“ aufgerufen, um die Whitespaces oder Whitespace -Zeichen aus der angegebenen Zeichenfolge zu löschen:

#enthalten
#enthalten
#enthalten
int main ()

std :: string stringis = "1 \ n \ n2 \ n \ n3 \ n \ n4 \ n \ n5";
std :: regex regx ("\\ stringis+");
Stringis = std :: regex_replace (Stringis, Regx, "");
std :: Cout<Rückkehr 0;

Der Regex -Ersatz entfernt die Whitespace -Zeichen aus der Ganzzahl -Zeichenfolge, die in der Befehlsschale von Ubuntu gedruckt ist.

Abschluss

Somit können wir Whitespace -Zeichen aus der Zeichenfolge in C ++ durch verschiedene in diesem Artikel diskutierte Methoden entfernen. Wir haben alle Demonstrationen dieser Beispiele mit dem daraus resultierenden Ergebnis des Programms. Sie haben eine ausreichende Anzahl von Methoden, um weiße Räume aus C ++ - Strings zu ersetzen oder zu entfernen. Wählen Sie alle Methoden, die Sie anziehen und gleichzeitig für die Situation angemessen sind.