Operatoren

C_Boy

Mitglied
Hallo,

ich möchte eine while()-schleife machen, die solange "x++" macht, bis ein Klein- oder Großbuchstabe kommt.

C++:
while( ( (a[x] >= 'a')  &&  (a[x] <='z')  || (a[x] >= 'A')  &&  (a[x] <='Z') ) )
{
  x++;
}

Diese Schleife zählt solange "x++" bis a[x] kein Groß- oder Kleinbuchstabe ist.


'a' bzw. 'A' ist ja kleiner im ASCII-Code wie 'z' bzw. 'Z'.

C++:
((a[x] >= 'a')  &&  (a[x] <='z'))

a=97(ASCII-Code) darum a[x] >(größer) oder (GlEICH) =(--> Gilt als Vergleichsoperator) '97'.

z=122 Hier eigentlich das gleich nur mit <(kleiner)

Wie kann man diese obige while jetzt so unschreiben das a[x] KEIN Klein- oder Großbuchstabe ist?

Das Rufezeichen ! steht ja für NOT.


MfG C_boy
 
Ja genau, ! ist Nicht...
C++:
while( ! ( ( (a[x] >= 'a')  &&  (a[x] <='z')  || (a[x] >= 'A')  &&  (a[x] <='Z') ) ) )
{
  x++;
}
oder, ohne ein paar überflüssige Klammern
C++:
while( ! ( a[x] >= 'a'  &&  a[x] <='z'  || a[x] >= 'A'  &&  a[x] <='Z' ) )
{
  x++;
}
 
Sofern nichts gegen den Einsatz von Bibliotheksfunktionen spricht, kann man die Schleife eigentlich auch etwas kürzer schreiben:
C++:
#include <ctype.h>

...

while( !isalpha( a[x] ) )
{
    x++;
}
Gruß
MCoder
 
Zurück