Прототип функции 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. Просто, посчитайте сами и вы в этом убедитесь.