Функция поиск символа в строке - 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, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д