Вызвать функцию через указатель - 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, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д