Проверить, входит ли введенный с клавиатуры символ в строку (функции) - 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;
}

Объяснение кода листинга программы

  1. В функции mystrchr происходит поиск первого вхождения символа ch в строке str. Если символ найден, то возвращается указатель на этот символ, иначе возвращается NULL.
  2. В функции main создается буфер buf для чтения строки с клавиатуры.
  3. В цикле while считывается строка с клавиатуры до тех пор, пока не будет введен символ новой строки или не будет достигнут конец файла.
  4. После считывания строки выводится сообщение Character: и считывается следующий символ.
  5. С помощью функции mystrchr проверяется, содержится ли введенный символ в строке.
  6. Если символ найден, то выводится F, иначе Not f.
  7. После проверки символа считывается еще один символ (возможно, пробел или символ новой строки).
  8. Цикл while продолжается до тех пор, пока не будет введен символ новой строки или не будет достигнут конец файла.
  9. По завершении цикла while программа возвращает 0, что означает успешное завершение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы