Поделиться через


_strrev, _wcsrev, _mbsrev, _mbsrev_l

Меняет порядок символов в строке на обратный.

Важно!

_mbsrev и _mbsrev_l не могут использоваться в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.

char *_strrev(
   char *str 
);
wchar_t *_wcsrev(
   wchar_t *str 
);
unsigned char *_mbsrev(
   unsigned char *str 
);
unsigned char *_mbsrev_l(
   unsigned char *str,
   _locale_t locale 
);

Параметры

  • str
    Строка, заканчивающаяся нулевым символом, для изменения порядка символов.

  • locale
    Языковой стандарт, который необходимо использовать.

Возвращаемое значение

Возвращает указатель на измененную строку. Нет зарезервированных возвращаемых значений для указания ошибки.

Заметки

Функция _strrev обращает порядок символов в string. Завершающий нулевой символ остается на месте. _wcsrev и _mbsrev — двубайтовая и многобайтовая символьные версии _strrev. Аргументы и возвращаемое значение _wcsrev представляют собой двухбайтовые строки; аргументы и возвращаемое значение _mbsrev представляют собой многобайтовые строки. Для _mbsrev порядок байтов в каждом многобайтовом символе string не изменяется. В остальных случаях эти три функции ведут себя идентично.

_mbsrev проверяет свои параметры. Если либо string1, либо string2 является указателем на null, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, то _mbsrev возвращает NULL и устанавливает errno в EINVAL. _strrev и _wcsrev не проверяют свои параметры.

Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale, _wsetlocale. Версии этих функций с суффиксом _l идентичны версиям без суффикса, за исключением того, что версии с суффиксом _l используют переданный параметр языкового стандарта вместо текущего языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

Примечание о безопасностиПримечание по безопасности

Эти функции могут быть подвержены угрозам переполнения буфера.Переполнение буфера можно использовать для атак на систему, поскольку оно может привести к несанкционированному повышению уровня привилегий.Дополнительные сведения см. в разделе Как избежать переполнения буфера.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

_UNICODE & _MBCS не определены

_MBCS определено

_UNICODE определено

_tcsrev

_strrev

_mbsrev

_wcsrev

Н/Д

Н/Д

_mbsrev_l

Н/Д

Требования

Подпрограмма

Обязательный заголовок

_strrev

<string.h>

_wcsrev

<string.h> или <wchar.h>

_mbsrev, _mbsrev_l

<mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_strrev.c
// This program checks a string to see
// whether it is a palindrome: that is, whether
// it reads the same forward and backward.
//

#include <string.h>
#include <stdio.h>

int main( void )
{
   char* string = "Able was I ere I saw Elba";
   int result;

   // Reverse string and compare (ignore case):
   result = _stricmp( string, _strrev( _strdup( string ) ) );
   if( result == 0 )
      printf( "The string \"%s\" is a palindrome\n", string );
   else
      printf( "The string \"%s\" is not a palindrome\n", string );
}
  

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.

См. также

Ссылки

Управление строками (CRT)

Языковой стандарт

Интерпретация последовательностей в многобайтной кодировке

strcpy, wcscpy, _mbscpy

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l