Проверить, входит ли введенный с клавиатуры символ в строку (функции) - C (СИ)
Формулировка задачи:
Проверить: входит введен с клавиатуры символ в строку. функция имеет
вернуть значение True или False.
Выполнение задания обязательно должно включать использование рекурсивной
функции.
без рекурсивной я знаю как сделать , а с рекурсивной не знаю
Решение задачи: «Проверить, входит ли введенный с клавиатуры символ в строку (функции)»
textual
Листинг программы
#include <stdio.h> char * mystrchr(const char * str, const int ch) { return ( *str == '\0' ) ? NULL : ( *str == ch ) ? (char*) str : mystrchr(str + 1, ch); } int main(void) { char buf[BUFSIZ]; int ch; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { printf("Character: "); if ( ( ch = getchar() ) == EOF || ch == '\n' ) break; printf("%sound\n", ( mystrchr(buf, ch) ) ? "F" : "Not f"); getchar(); } return 0; }
Объяснение кода листинга программы
- В функции
mystrchr
происходит поиск первого вхождения символаch
в строкеstr
. Если символ найден, то возвращается указатель на этот символ, иначе возвращается NULL. - В функции
main
создается буферbuf
для чтения строки с клавиатуры. - В цикле while считывается строка с клавиатуры до тех пор, пока не будет введен символ новой строки или не будет достигнут конец файла.
- После считывания строки выводится сообщение
Character:
и считывается следующий символ. - С помощью функции
mystrchr
проверяется, содержится ли введенный символ в строке. - Если символ найден, то выводится
F
, иначеNot f
. - После проверки символа считывается еще один символ (возможно, пробел или символ новой строки).
- Цикл while продолжается до тех пор, пока не будет введен символ новой строки или не будет достигнут конец файла.
- По завершении цикла while программа возвращает 0, что означает успешное завершение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д