Lesen std::string, entfernen Sie alle Sonderzeichen aus einem std::string
Ich bin ganz neu hier im forum und c++. Also verzeihen Sie mir für meine Zweifel/Fragen. Ich versuche zu Lesen ein std::string
. Ich weiß, ich kann auf die Elemente mit at
oder [int]
Betreiber. Ich habe 2 Fragen:
1) entfernen Sie oder löschen Sie alle Sonderzeichen aus dem string (mit Leerzeichen)
2) Lesen Sie nur die ersten 4 Zeichen oder Buchstaben aus diesem string
1), checke ich auf std::erase
und std::remove_if
aber ich brauche, um alle zu eliminieren, ich meine, Sonderzeichen und Leerzeichen zu. Das bedeutet ich muss alle Bedingungen, die isspace()
/isalpha()
und so weiter. Gibt es keine einzelne Methode zu entfernen Sie alle auf einmal?
Für 2), auf die ich zugreifen kann der string wie ein array, ich meine, string[0], string[1], string[2] string[3]. Aber ich kann nicht fügen Sie diese in einzelne string?
Bitte lassen Sie mich wissen, wie kann ich das erreichen?
- Die Zeichen sind "Sonderzeichen"?
- Ja, ich meine, alle in der zweiten Zeile unsere Tastaturen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommen die ersten vier Zeichen:
Entfernen Sie alles, was isspace und isalpha Prädikate (obwohl ich denke, dass ich falsch verstanden, hier, meinst du isspace und ist nicht isalpha??):
Können Sie anfügen an die Zeichenkette mit
op+=
. Zum Beispiel:Entfernen Sie alle Sonderzeichen, warum nicht eine Methode so auf:
und dann einfach Durchlaufen durch die Schnur und entfernen Sie die Zeichen ein, die nicht legal?
1: std::remove_if löscht alle Elemente, für die das angegebene Prädikat true zurückgibt. Sie bieten dem Prädikat Objekt Funktion, und Sie können, was Sie wollen es so lange wie es dauert, um ein element aus dem container (char) und einen bool zurückgibt.
Schreiben Sie eine Funktion wie:
oder Sie können schreiben Sie es als eine lambda-Funktion, und dann kann es passieren, std::remove_if entfernen Sie alles aus der Zeichenfolge, die erfüllt Ihre Bedingungen im 1-pass.