2016-08-10 1 views
0

I unter Verwendung des folgend in ein char c mod versuchen:Verwendung von Modulo-Operator auf einem char in C

int shift = 1;  
c = (c + shift) % 26; 
printf("c= %c \n",c); 

Die Variable c ist ein Kleines Englisch Zeichen zwischen A-Z. Wenn ich versuche, aus dem char c drucken Sie den obigen Code verwenden, erhalte ich die folgende:

c= 

Könnte mir bitte jemand sagen, was ich falsch mache?

+5

0-25 sind nicht sichtbaren Zeichen in ascii. – kaylum

+1

Der Buchstabe c hat keinen Wert von weniger als 26. Sie können sich ein Ascii-Diagramm anschauen und sehen, ob das hilft. –

+0

Danke euch beiden! – Turtle

Antwort

0

Verschieben Sie es durch 'a' oder 'A'. Dann werden Sie immer einen Charakter bekommen, die einen Teil des Alphabets ist:

int main(){ 
    unsigned i; 
    for(i=0;;i++) 
     printf("i=%c\n", 'a'+i%26); 

} 

druckt:

i=a 
i=b 
i=c 
i=d 
i=e 
i=f 
i=g 
i=h 
i=i 
i=j 
... 
Verwandte Themen