Я написал программу для вычисления частоты символов в строке, введенной пользователем. Он дает правильный вывод для всех строчных букв, но он не работает для букв верхнего регистра. Не удается найти ошибку в коде:Вычисление частоты символов в строке с помощью 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;
}
Пожалуйста, помогите!
Вот скриншот. Надеюсь, вы поймете, что проблема я столкнулся:
Это не считая заглавные буквы.
'While (строка [с] =«\ п ') 'является рискованным. Что делать, если пользователь вводил более 100 символов? –
Я не могу воспроизвести вашу проблему - она отлично работает для меня. –
Здесь тоже отлично работает. – totoro