Прототип функции strrchr:
const char * strrchr( const char * string, int symbol ); char * strrchr( char * string, int symbol );
Заголовочный файл:
Название | Язык |
---|---|
string.h | С |
cstring | С++ |
Описание
Функция ищет последнее вхождение символа symbol
в строку string
. Возвращает указатель на последнее вхождение символа в строке string
. Завершающий нулевой символ считается частью строки. Таким образом, он также может быть найден для получения указателя на конец строки.
В Си эта функция определена так:
char * strrchr( const char *string, int symbol);
Параметры:
- string
Строка, в которой выполняется поиск. - symbol
Искомый символ. Передается функции как целое число, после конвертируется вchar
.
Возвращаемое значение
Указатель на последнее вхождение символа в строку string
.
Если значение не найдено, функция возвращает нулевой указатель.
Пример: исходный код программы
//пример использования функции strrchr #include <iostream> #include <cstring> int main () { char str[] = "Автономная Республика Крым"; char * pch = strrchr(str,'м'); std::cout << "Последнее вхождение символа 'м' - " << (pch - str + 1) << " позицияn"; return 0; }
Пример работы программы
Пример программы был написан в ОС Linux. В ней используется кодировка utf-8, поэтому каждый символ кириллицы следует считать как за два. Так как под него отводится два байта, а не один, как мы привыкли в Windows c кодировкой cp-1251.
Исходя из всего выше сказанного, нет ничего удивительного в том, что позиция символа равна 50. Просто, посчитайте сами и вы в этом убедитесь.