Функция strrchr

Прототип функции 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;
}

Пример работы программы

CppStudio.com
Последнее вхождение символа ‘м’ — 50 позиция

Пример программы был написан в ОС Linux. В ней используется кодировка utf-8, поэтому каждый символ кириллицы следует считать как за два. Так как под него отводится два байта, а не один, как мы привыкли в Windows c кодировкой cp-1251.

Исходя из всего выше сказанного, нет ничего удивительного в том, что позиция символа равна 50. Просто, посчитайте сами и вы в этом убедитесь.

Автор: admin
Дата: 31.08.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.