Функция поиск символа в строке - 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; }
Объяснение кода листинга программы
- Включаем заголовочный файл assert.h, который содержит прототипы функций assert и assert_message, а также определяет макрос ASSERT.
- Определяем функцию find_char, которая принимает два аргумента: const char* str — указатель на начало строки, в которой необходимо осуществить поиск, и char c — символ, который необходимо найти в строке.
- В функции find_char осуществляется цикл for, который начинается с указателя на первый символ строки и продолжается до тех пор, пока не встретится символ '\0'.
- Внутри цикла проверяется условие *str == c, если оно истинно, то цикл прерывается с помощью оператора break.
- Если цикл завершается без прерывания, то возвращается указатель на последний символ строки.
- В функции main создается массив символов
abc
с помощью оператора символьного литерала. - С помощью функции assert проверяется, что после вызова функции find_char для поиска символа 'a' возвращается указатель на первый символ строки
abc
. - Аналогично проверяется, что после вызова функции find_char для поиска символа 'b' возвращается указатель на второй символ строки
abc
. - Аналогично проверяется, что после вызова функции find_char для поиска символа 'c' возвращается указатель на третий символ строки
abc
. - Аналогично проверяется, что после вызова функции find_char для поиска символа 'd' возвращается указатель на четвертый символ строки
abc
. - Аналогично проверяется, что после вызова функции find_char для поиска символа 'e' возвращается указатель на четвертый символ строки
abc
. - Функция main завершается возвратом значения 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д