Der String in C++ ist gleichermassen unkompliziert wie ungenau, denn Sie haben hier nicht die exakten Zugriffsmöglichkeiten wie beim Array.

Gleich zu Beginn fällt auf, daß das Leerzeichen und somit etwa Wörter eines Satzes einer Sonderbehandlung bedürfen. Dazu der erste Quellcode!

Der String schafft sich seine Größe selber und nimmt immer den größten potenziellen Bedarf an Speicher. Dennoch ist man immer gut beraten, die Größe auch bei Strings durch Bedingungen zu begrenzen!

bool  |  Arrays und Indices  |  Strings in do... while...  |  Texte suchen und ersetzen  |  Strings, Pointer und Textdatei

Zunächst ist die Direktive stdlib.h für den atoi also Array to Integer nötig. Der atoi wandelt die Zeichenkette in einen Integer mit Werten um. Aber nur dann, wenn die Anzahl der Zeichen in der Eingabe nicht überschritten wurde:

zuerst strlen ( maxim ) < 11 dann eing = atoi ( maxim ) und danach eing < 0 || eing > 0

Der atoi muss also vor der Bedingung mit oder stehen, da sonst der Wert nicht bestimmt werden kann.

Array, Länge und atoi

Nein, es gibt in C++ keinen stoi also string to integer. Meines Wissens gab es ihn mal in C, bin mir aber nicht sicher. Dafür haben wir den stringstream, der zuverlässig Zeichen von Zahlen trennt. Die Direktive sstream bitte nicht vergessen. Und jetzt die Deklaration aller nötigen Variablen:

string s ; int x = 0 ; ... und dann... stringstream nums ( s ) ; nums >> x ;

Stringstream

Nun soll aber Zeichen bleiben, was Zeichen ist und der Wert ausgegeben werden, sofern die Eingabe eine Zahl ist. Dazu die Probe auf Integer bereits in der Bedingung: if ( x * 2 == 0 )

Und dann eben entsprechende Ausgabe mit den Variablen s und x für Zeichen oder Zahlen. Wichtig ist aber, daß Sie x auf den Wert prüfen und nicht s, denn der String ist dem Wert 0 immer gleichgesetzt. Ein Buchstabe hat freilich keinen Zahlenwert.

Datentypen und Wertebereiche  |  Datentypen mit cast

Startseite  |  Hinweise und Impressum  |  Facebook  |  Twitter  |  Google plus