Ich habe ein Programm geschrieben, um die Zeichenhäufigkeit in einer Zeichenfolge zu berechnen, die vom Benutzer eingegeben wurde. Es liefert korrekte Ausgabe für alle Kleinbuchstaben, aber es funktioniert nicht für Großbuchstaben. Ich kann das Problem nicht im Code finden:Berechnen der Zeichenfrequenz in einem String mit C
#include <stdio.h>
#include <string.h>
int main()
{
char string[100];
int c = 0, count[26] = {0};
printf("Enter a string\n");
fgets(string,100,stdin);
while(string[c] != '\n') {
c++;
}
string[c] = '\0';
c = 0;
while (string[c] != '\0')
{
/** Considering characters from 'a' to 'z' only
and ignoring others */
if (string[c] >= 'a' && string[c] <= 'z')
count[string[c]-'a']++;
else if(string[c] >= 'A' && string[c]<= 'Z')
count[string[c]-'A']++;
c++;
}
for (c = 0; c < 26; c++)
{
/** Printing only those characters
whose count is at least 1 */
if (count[c] != 0)
printf("%c occurs %d times in the entered string.\n",c+'a',count[c]);
}
return 0;
}
Bitte Hilfe!
Hier ist der Screenshot. Hoffentlich werden Sie verstehen, was Problem, das ich bin vor:
Es ist nicht die Großbuchstaben zu zählen.
'while (string [c] =‚\ n ")" ist riskant. Was ist, wenn der Benutzer mehr als 100 Zeichen eingegeben hat? –
Ich kann dein Problem nicht reproduzieren - es funktioniert gut für mich. –
Funktioniert auch hier gut. – totoro