Вызвать функцию через указатель - 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;
}

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

  1. Подключение необходимых библиотек для работы с файлами, строками и функциями.
  2. Объявление функции с именем linsearch с двумя параметрами типа char* и char.
  3. Объявление указателя на функцию с именем func, которая будет вызывать функцию linsearch.
  4. В функции linsearch происходит поиск символа в строке с помощью цикла for и условия if. Если символ найден, то выводится сообщение с позицией нахождения и функция возвращает управление. Если символ не найден, то выводится сообщение об отсутствии символа в строке.
  5. В функции main создается указатель на функцию linsearch и сохраняется в переменной func.
  6. Вызов функции func с двумя аргументами Hallo World! и 'W'.
  7. Возврат значения EXIT_SUCCESS из функции main, что означает успешное выполнение программы.

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


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

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

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