В строке из символов сосчитать число слов состоящих из разных букв? - C (СИ)
Формулировка задачи:
В строке из символов сосчитать число слов состоящих из разных букв?СИ
Решение задачи: «В строке из символов сосчитать число слов состоящих из разных букв?»
#include <stdio.h> #include <string.h> int unique_chars(const char * s) { return ( *s ) ? ( strchr(s + 1, *s) ) ? 0 : unique_chars(s + 1) : 1; } #define DELIM " \t\n" int main(void) { char buf[BUFSIZ]; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { int count = 0; char * word = strtok(buf, DELIM); for ( ; word; word = strtok(NULL, DELIM) ) { if ( unique_chars(word) ) { printf("%s\n", word); ++count; } } printf("%d words with unique characters.\n", count); } return 0; }
Объяснение кода листинга программы
В этом коде реализована функция unique_chars
, которая принимает строку и возвращает 1, если первый символ этой строки уникален (не встречается в остальной части строки), и 0 в противном случае.
Функция main
считывает строку из стандартного ввода до тех пор, пока пользователь не введет пустую строку. Затем она разбивает эту строку на слова, используя пробелы, табы и переносы строк в качестве разделителей.
Для каждого слова в этой строке функция main
вызывает функцию unique_chars
, чтобы проверить, содержит ли это слово уникальные символы. Если это так, слово выводится на экран, и счетчик count
увеличивается на 1.
После обработки всех слов в строке функция main
выводит количество слов с уникальными символами.
Символы #include <stdio.h>
, #include <string.h>
, #define DELIM
\t\n` и
int main(void)` - это заголовочный код, который подключает необходимые библиотеки и определяет константу, используемую в коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д