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

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

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

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

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

textual
Листинг программы
#include <assert.h>
 
char* find_char(const char* str, char c)
{
    for( ; *str; ++str ) {
        if( *str == c ) break;
    }
    return (char*)str;
}
 
int main(void)
{
    char string[] = "abc";
    assert( find_char(string, 'a') == string );
    assert( find_char(string, 'b') == string + 1 );
    assert( find_char(string, 'c') == string + 2 );
    assert( find_char(string, 'd') == string + 3 );
    assert( find_char(string, 'e') == string + 3 );
 
    return 0;
}

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

  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
Похожие ответы