Forum: PC-Programmierung Bedingungen zusammenfassen


von Daniel S. (dani2304)


Lesenswert?

Hallo,
ich würde gerne mehrere Bedingungen eines strings zusammenfassen. Hab 
mich schon durch die Befehle von string.h gegeben aber nichts gefunden.
1
for(i=0;i<(laenge-2);i++){
2
    if(Datei[i]!='1'&&Datei[i]!='2'&&Datei[i]!='3'&&Datei[i]!='4'&&Datei[i]!='5'&&Datei[i]!='6'&&Datei[i]!='7'&&Datei[i]!='8'&&Datei[i]!='9'&&Datei[i]!='0'){
3
          printf("Fehler! Falscher Wertebereich eingetragen.");
4
          return -1;
5
    }
6
}

von Yalu X. (yalu) (Moderator)


Lesenswert?

In ctype.h gibt es die Funktion isdigit().

von Wilhelm M. (wimalopaan)


Lesenswert?

Wie wäre es mit regulären Ausdrücken?

von (prx) A. K. (prx)


Lesenswert?

Wilhelm M. schrieb:
> Wie wäre es mit regulären Ausdrücken?

Soll er den armen Spatz mit einer Kanone erlegen?

von Wilhelm M. (wimalopaan)


Lesenswert?

Ich habe das Beispiel als solches aufgefasst: vielleicht soll es ja ein 
komplizierte Prüfung letztendlich werden. Und vielleicht ist es ja was 
Neues für den TO? Und in der Laufzeit auch nicht schlimmer, da ja die 
RegEx kompiliert werden zum einem Automaten.

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

Man könnte auch ausnutzen, dass '0' .. '9' sortiert hintereinander 
vorkommen.

 if(   Datei[i] <'0'
    || Datei[i] >'9' )

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

if(!isdigit(Datei[i])) aus der ctype.h
oder
PittyJ's Lösung
sind doch elegant.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.