Описать функцию MinLetter(Stroka), возвращающую букву, которая встречается в строке минимальное число раз - C (СИ)
Формулировка задачи:
Описать функцию MinLetter(Stroka) символьного типа, возвращающую
букву, которая встречается в строке минимальное число раз. Если таких букв
несколько, то возвращается - последняя. Дан текст. С помощью функции
MinLetter вывести слово, образованное из букв, встретившихся в каждом слове
минимальное число раз.
Решение задачи: «Описать функцию MinLetter(Stroka), возвращающую букву, которая встречается в строке минимальное число раз»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char MinLetter(const char* const s)
{
char result = 0;
int occurrences[26];
size_t i, length;
length = strlen(s);
if (length > 0)
{
memset(occurrences, 0, sizeof(occurrences));
for (i = 0; i < length; i++)
{
occurrences[tolower(s[i]) - 97]++;
}
result = 97;
for (i = 0; i < 26; i++)
{
if (occurrences[result - 97] != 0)
{
if ((occurrences[result - 97] >= occurrences[i]) && (occurrences[i] > 0))
{
result = i + 97;
}
}
else if (occurrences[i] > 0)
{
result = i + 97;
}
}
}
return result;
}
int main(void)
{
printf("%c\n", MinLetter("abcdefghijklmnopqrstuvwxyzz"));
return 0;
}