2017-05-21 1 views
1

Ich machte das Zählen kleine Alphabet-Programm.C während der Endlosschleife Druckfehler

Unbeabsichtigte Ergebnisrückgabe.

output

I „Bitte geben Sie ein Zeichen“ wollen pro Schleife gedruckt einmal werden.

#include<stdio.h> 
#pragma warning (disable : 4996) 

int main() { 
char a; 
int b = 0, d = 0; 

while (1) { 

    printf("Please enter a character <escape .>"); 
    scanf("%c", &a); 

    if (a == '.') 
     break; 

    if (a <= 'a' || a >='z') { 
     d = d + 1; 
     continue; 
    } 

} 

printf ("Number of lower case letters %d", d); 

getchar(); getchar(); getchar(); 
return 0;} 

Bitte helfen Sie mir

+1

Ich folgte Ihrem Rat und es funktioniert gut. Vielen Dank für Ihre Freundlichkeit. –

Antwort

1

ersetzen

scanf("%c", &a); 

von

scanf(" %c", &a); 

Whitespaces wurden von scanf verbraucht zu werden. Die Verwendung von Leerzeichen in scanf() vor% c ermöglicht das Auslassen von Leerzeichen.

P.S. Um Kleinbuchstaben zu erkennen, sollte die aktuelle if-Bedingung

sein
if (a >= 'a' && a <='z')  
+0

P.P.S. Um Kleinbuchstaben zu erkennen, gibt es eine Bibliotheksfunktion: ['islower'] (http://en.cppreference.com/w/c/string/byte/islower). – InternetAussie

+0

Ich folgte Ihrem Rat. und ich habe das Ergebnis, das ich wollte. Danke, dass du auf den falschen Teil hingewiesen hast. –

+0

Wenn es für Sie funktioniert, akzeptieren Sie bitte die Antwort. Klicken Sie auf das Häkchen auf der linken Seite der Antwort. –