Überprüf-Funktionen string?double?int?
-
Hey C++ler,
ich suche nach geeigneten Funktionen, die überprüfen können, ob der Inhalt einer Variable nur aus Zahlen/Buchstaben besteht...
Ich möchte, dass der Benutzer z.b. eine mehrstellige Nummer eingibt, die Eingabe soll dann Überprüft werden, ob es auch nur Zahlen sind oder auch Buchstaben etc, dabei sind. Wenn es nur Zahlen sind wird die Eingabe weiterverarbeitet.
Kann mir da jmd. weiter helfen?
Mfg Golfi
-
Mach dir eine Funktion "bool isValidInput(const std::string &input)" und nutze dann z.B. die Funktionen aus <cctype>. Vielleicht geht das auch mit den Streams, aber das hört sich für mich erstmal nach mehr Gefrickel an, als eine einfache Funktion. Vielleicht postet ja jemand etwas schönes, das mich umstimmen kann.
-
Danke...
Kann ich eigentlich z.b. 12345x6 in eine integer Variable einlesen, ohne dass es einen Laufzeitfehler gibt? Denn dann könnte ich die Variable überprüfen. Da hätte ich schon einen Ansatz...
-
Was soll "12345x6" ergeben? 123456? Willst du alle nicht-numerischen Zeichen überspringen?
-
Willst du alle nicht-numerischen Zeichen überspringen?
Korekt, wie schaffe ich das?
-
Da gibt es mehrere Möglichkeiten.
- Du entfernst alle nicht-numerische Zeichen.
- Du baust dir einen Iterator, der alle nicht-numerischen Zeichen überspringt.
- Du iterierst über den String, und wenn du ein numerisches Zeichen findest, multiplizierst du deine Zahl mit 10 und addierst die Ziffer.
-
Ich würde alle nichtnumerischen Zeichen ausm String entfernen und den Rest über stringstream zu einem int shiften.
-
Oder:
- Du baust dir einen Stream, der nicht-numerische Zeichen überspringt