Вызвать функцию через указатель - C (СИ)
Формулировка задачи:
Си
Сделать указатель на функцию. И вызвать функцию через указатель. Функция линейного поиска. Передаются в функцию параметры. Указатель с набором символов и символ, который будем искать. Набор символов и символ, который ищем заполняем с клавиатуры.Решение задачи: «Вызвать функцию через указатель»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdlib.h> void (*func)(char*, char); void linsearch(char* str, char ch) { for(int i = 0; i < strlen(str); ++i) { if(str[i] == ch) { printf("The char %c was found on the position %d in the given string.\n", ch, i); return; } } printf("The given string doesn't contain this char. Try again!\n"); } int main(int argc, char** argv) { func = &linsearch; func("Hallo World!", 'W'); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, строками и функциями.
- Объявление функции с именем linsearch с двумя параметрами типа char* и char.
- Объявление указателя на функцию с именем func, которая будет вызывать функцию linsearch.
- В функции linsearch происходит поиск символа в строке с помощью цикла for и условия if. Если символ найден, то выводится сообщение с позицией нахождения и функция возвращает управление. Если символ не найден, то выводится сообщение об отсутствии символа в строке.
- В функции main создается указатель на функцию linsearch и сохраняется в переменной func.
- Вызов функции func с двумя аргументами
Hallo World!
и 'W'. - Возврат значения EXIT_SUCCESS из функции main, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д