Функция поиск символа в строке - C (СИ)

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

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

Помогите написать функцию char* findChar(const char *str, char c); которая ищет в строке str указанный символ c и возвращает указатель на его первое вхождение. В случае если символ не найден, должен быть возвращён указатель на конец строки. Функция не должна выходить за пределы строки

Решение задачи: «Функция поиск символа в строке»

textual
Листинг программы
  1. #include <assert.h>
  2.  
  3. char* find_char(const char* str, char c)
  4. {
  5.     for( ; *str; ++str ) {
  6.         if( *str == c ) break;
  7.     }
  8.     return (char*)str;
  9. }
  10.  
  11. int main(void)
  12. {
  13.     char string[] = "abc";
  14.     assert( find_char(string, 'a') == string );
  15.     assert( find_char(string, 'b') == string + 1 );
  16.     assert( find_char(string, 'c') == string + 2 );
  17.     assert( find_char(string, 'd') == string + 3 );
  18.     assert( find_char(string, 'e') == string + 3 );
  19.  
  20.     return 0;
  21. }

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

  1. Включаем заголовочный файл assert.h, который содержит прототипы функций assert и assert_message, а также определяет макрос ASSERT.
  2. Определяем функцию find_char, которая принимает два аргумента: const char* str — указатель на начало строки, в которой необходимо осуществить поиск, и char c — символ, который необходимо найти в строке.
  3. В функции find_char осуществляется цикл for, который начинается с указателя на первый символ строки и продолжается до тех пор, пока не встретится символ '\0'.
  4. Внутри цикла проверяется условие *str == c, если оно истинно, то цикл прерывается с помощью оператора break.
  5. Если цикл завершается без прерывания, то возвращается указатель на последний символ строки.
  6. В функции main создается массив символов abc с помощью оператора символьного литерала.
  7. С помощью функции assert проверяется, что после вызова функции find_char для поиска символа 'a' возвращается указатель на первый символ строки abc.
  8. Аналогично проверяется, что после вызова функции find_char для поиска символа 'b' возвращается указатель на второй символ строки abc.
  9. Аналогично проверяется, что после вызова функции find_char для поиска символа 'c' возвращается указатель на третий символ строки abc.
  10. Аналогично проверяется, что после вызова функции find_char для поиска символа 'd' возвращается указатель на четвертый символ строки abc.
  11. Аналогично проверяется, что после вызова функции find_char для поиска символа 'e' возвращается указатель на четвертый символ строки abc.
  12. Функция main завершается возвратом значения 0, что означает успешный конец работы программы.

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


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

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

6   голосов , оценка 4.5 из 5

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

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

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