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


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Определяет символ обратно одного указателя строки.

Важное примечаниеВажно

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

unsigned char *_strdec(
   const unsigned char *start,
   const unsigned char *current 
);
unsigned wchar_t *_wcsdec(
   const unsigned wchar_t *start,
   const unsigned wchar_t *current 
);
unsigned char *_mbsdec(
   const unsigned char *start,
   const unsigned char *current 
);
unsigned char *_mbsdec_l(
   const unsigned char *start,
   const unsigned char *current,
   _locale_t locale
);

Параметры

  • start
    Указатель на любому символу (или для и _mbsdec _mbsdec_l, первого байта любого символа многобайтовой) в строке источника; start должно предшествовать current в строке источника.

  • current
    Указатель на любому символу (или для и _mbsdec _mbsdec_l, первого байта любого символа многобайтовой) в строке источника; current, должно соответствовать start в строке источника.

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

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

__mbsdec,mbsdec_l, _strdec и _wcsdec каждого вернуть указатель на символы, непосредственно предшествующего current; метод _mbsdec возвращает значение NULL, если значение start больше или равно параметрам current.сопоставления _tcsdec одно из этих функций и своего возвращаемого значения зависят от сопоставлении.

Заметки

Функции _mbsdec и _mbsdec_l возвращают указатель на первый байту символов многобайтовой, непосредственно предшествующего current в строке, которая содержит start.

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

Если start или current равно NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если среда выполнения может продолжить, эта функция возвращает значение EINVAL и задает для errno значение EINVAL.

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

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

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

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

Не указаны _UNICODE и _MBCS

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

Определение _UNICODE

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdec и _wcsdec версии одно-байт- символа юникода и _mbsdec и _mbsdec_l._strdec и _wcsdec предназначены только для этого сопоставления и не должны использоваться в противном случае.

Дополнительные сведения см. в разделах Использование сопоставления Родов- Текста и Сопоставления Родов-Текста.

Требования

Функция

Требуемый заголовок

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

_mbsdec

<mbstring.h>

<mbctype.h>

_mbsdec_l

<mbstring.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

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

Пример

В следующем примере демонстрируется использование функции _tcsdec.

#include <iostream>
#include <tchar.h>
using namespace std;

int main()
{
   const TCHAR *str = _T("12345");
   cout << "str: " << str << endl;

   const TCHAR *str2;
   str2 = str + 2;
   cout << "str2: " << str2 << endl;

   TCHAR *answer;
   answer = _tcsdec( str, str2 );
   cout << "answer: " << answer << endl;

   return (0); 
}

В следующем примере демонстрируется использование функции _mbsdec.

#include <iostream>
#include <mbstring.h>
using namespace std;

int main() 
{ 
   char *str = "12345";
   cout << "str: " << str << endl;

   char *str2;
   str2 = str + 2; 
   cout << "str2: " << str2 << endl;

   unsigned char *answer;
   answer = _mbsdec( reinterpret_cast<unsigned char *>( str ), reinterpret_cast<unsigned char *>( str2 ));

   cout << "answer: " << answer << endl;

   return (0); 
}

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

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

См. также

Ссылки

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

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l