Partilhar via


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Move um caractere de volta um ponteiro de cadeia de caracteres.

Observação importanteImportante

mbsdec e mbsdec_l não podem ser usados em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /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 );

Parâmetros

  • start
    Ponteiro para qualquer caractere (ou para _mbsdec e _mbsdec_l, o primeiro byte de qualquer caractere de multibyte) na cadeia de caracteres de origem; start deve preceder current na cadeia de caracteres de origem.

  • current
    Ponteiro para qualquer caractere (ou para _mbsdec e _mbsdec_l, o primeiro byte de qualquer caractere de multibyte) na cadeia de caracteres de origem; current deve seguir start na cadeia de caracteres de origem.

  • locale
    A localidade usar.

Valor de retorno

_mbsdec, _mbsdec_l, _strdec, e _wcsdec cada retorno um ponteiro para o caractere que precede imediatamente current; _mbsdec retorna NULL se o valor de start é maior ou igual ao de current.mapas de_tcsdec a uma dessas funções e o valor de retorno dependem de mapeamento.

Comentários

Funções de _mbsdec e de _mbsdec_l retornam um ponteiro para o primeiro byte de caracteres de multibyte que precede imediatamente current na cadeia de caracteres que contém start.

O valor de saída é afetado pela configuração da categoria de LC_CTYPE de localidade; consulte setlocale, wsetlocale para mais informações._mbsdec reconhece sequências de multibyte- caractere de acordo com a localidade que está atualmente em uso, quando _mbsdec_l é idêntico exceto que ela em vez disso use o parâmetro de localidade que é passado.Para obter mais informações, consulte Localidade.

Se start ou current são NULL, o manipulador inválido do parâmetro é invocado, como descrito em Validação de parâmetro.Se a execução é permitida continuar, retorna EINVAL dessa função e definem errno a EINVAL.

Observação de segurançaObservação de segurança

Essas funções podem ser vulneráveis armazenar em buffer ameaças de estouro.Estouros de buffer podem ser usadas para ataques do sistema como podem causar uma despropositado elevação de privilégio.Para obter mais informações, consulte Evitando estouros de buffer.

Mapeamentos da rotina de Genérico- texto

Rotina de Tchar.h

_UNICODE e não definidos _MBCS

_MBCS definido

_UNICODE definido

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdec e _wcsdec são versões de único-byte- caractere e o caractere largo- de _mbsdec e _mbsdec_l._strdec e _wcsdec são fornecidos apenas para esse mapeamento e não devem ser usados de outra forma.

Para obter mais informações, consulte Usando mapeamentos de texto genérico e Mapeamentos de texto genérico.

Requisitos

Rotina

Cabeçalho necessário

Cabeçalho opcional

_mbsdec

<mbstring.h>

<mbctype.h>

_mbsdec_l

<mbstring.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

Para mais informações, consulte Compatibilidadede compatibilidade.

Exemplo

O exemplo a seguir mostra um uso de _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); 
}

O exemplo a seguir mostra um uso de _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); 
}

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Manipulação de cadeia de caracteres (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l