Prüfen ob Zeichen eines String eine Zahl

MartinFS

Mitglied
Hallo,

ich habe hier einen AnsiString, bei dem ich gerne prüfen würde ob das erste Zeichen eine Zahl ist oder nicht.
Wenn keine Zahl, dann muss der String um das erste Zeichen gekürzt werden (das ist kein Probleme).
Statt in der if-Bedingung nun immer meinAnsiString.SubString(0,1) == "0" || meinAnsiString.SubString(0,1) == "1" || meinAnsiString.SubString(0,1) == "2" || etc... zu prüfen, würde ich gerne eine elegantere Möglichkeit verwenden.

Kann mir da jemand einen Tipp geben?


Danke.


gruß,
MFS
 
Code:
#include <ctype.h>

if (isdigit (meinAnsiString[0])

(allerdings kenn ich die AnsiString Klasse nicht; ist da ein char operator[]() definiert?)
 
moin


So würde ich einen kompletten String untersuchen:
Code:
string eingabe = "1223345";

for(int i=0; i<eingabe.length(); i++)
        if(isdigit(eingabe[i]) == 0)
		cout<<"Fehler";

Oder wenn man sich isdigit sparen will:
Code:
for(int i=0; i<eingabe.length(); i++)
        if(eingabe[i] >= '0' && eingabe[i] <= '9')
		cout<<"Fehler";
Eine Funktion, um einen kompletten String zu untersuchen, gibt es glaub ich noch nicht.
Also immer Zeichen für Zeichen.

AnsiString lässt sich eigentlich genauso handhaben wie string.


mfg
umbrasaxum
 
Hallo....

vielen Dank für die Hilfe. Ich habe mitlerweile aber eine nicht ganz so schicke Lösung gewählt, die aber auch funktioniert... einfach ein Leerzeichen mehr dazwischen lassen, so dass es egal ist, ob der String 1, 2 oder 3-stellig ist.


gruß,
MFS
 
Hi,

das ist bei einer einstelligen Zahl zwei vorangestellte Leerzeichen habe, die bei der Typwandlung zum int automatisch wegfallen. So kommt das System mit Zahlen von 0 bis 999 klar.


Gruß,
MFS
 

Neue Beiträge

Zurück