Вызвать функцию через указатель - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Си

Сделать указатель на функцию. И вызвать функцию через указатель. Функция линейного поиска. Передаются в функцию параметры. Указатель с набором символов и символ, который будем искать. Набор символов и символ, который ищем заполняем с клавиатуры.

Решение задачи: «Вызвать функцию через указатель»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. void (*func)(char*, char);
  6.  
  7. void linsearch(char* str, char ch)
  8. {
  9.     for(int i = 0; i < strlen(str); ++i)
  10.     {
  11.         if(str[i] == ch)
  12.         {
  13.             printf("The char %c was found on the position %d in the given string.\n", ch, i);
  14.             return;
  15.         }
  16.     }
  17.    
  18.     printf("The given string doesn't contain this char. Try again!\n");
  19. }
  20.  
  21. int main(int argc, char** argv)
  22. {
  23.     func = &linsearch;
  24.    
  25.     func("Hallo World!", 'W');
  26.  
  27.     return EXIT_SUCCESS;
  28. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы