Дано слово. Определить сколько различных букв в нём (можно использовать string.h) - C (СИ)
Формулировка задачи:
Дано слово. Определить сколько различных букв в нём (можно использовать string.h), например, если вводим greeterg, результат будет 4
Решение задачи: «Дано слово. Определить сколько различных букв в нём (можно использовать string.h)»
textual
Листинг программы
#include <stdio.h>
int main(void) {
char str[] = "greeterg";
int symbols[256] = { 0 };
for (char* i = str; *i; ++i) {
++symbols[(unsigned)*i];
}
int res = 0;
for (int i=0; i < 256; ++i) {
if (symbols[i]) ++res;
}
printf("%d\n", res);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Создаётся массив символов
strтипа char с заданным словомgreeterg. - Создаётся массив
symbolsтипа int с 256 элементами, и все они инициализируются нулём. - В цикле перебираются все символы в строке
str. - Для каждого символа увеличивается соответствующий элемент в массиве
symbolsна единицу. - Создаётся переменная
resтипа int и инициализируется нулём. - В цикле перебираются все элементы массива
symbols. - Если значение элемента больше нуля, то к переменной
resприбавляется единица. - Результат выводится на экран с помощью функции printf.
- Программа возвращает 0, что означает успешное завершение работы.