Condividi tramite


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Sposta il puntatore della stringa indietro di un carattere.

Importante

mbsdec e mbsdec_l non possono essere utilizzate nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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
);

Parametri

  • start
    Puntatore a qualsiasi carattere (o per _mbsdec e _mbsdec_l, il primo byte di un carattere multibyte) nella stringa di origine; start deve precedere current nella stringa di origine.

  • current
    Puntatore a qualsiasi carattere (o per _mbsdec e _mbsdec_l, il primo byte di un carattere multibyte) nella stringa di origine; current deve seguire start nella stringa di origine.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

_mbsdec, _mbsdec_l, _strdec e _wcsdec restituiscono un puntatore al carattere che precede immediatamente current; _mbsdec restituisce NULL se il valore start è maggiore o uguale a quello current. _tcsdec mappa una di queste funzioni e il valore restituito dipende dal mapping.

Note

Le funzioni _mbsdec_l e _mbsdec restituiscono un puntatore al primo byte di caratteri multibyte che precede immediatamente current nella stringa contenente start.

Il valore di output è interessato dall'impostazione dell'impostazione di categoria LC_CTYPE delle impostazioni locali; consultare setlocale, _wsetlocale. _mbsdec riconosce le sequenze di caratteri multibyte a seconda delle impostazioni locali che sono attualmente utilizzate, mentre _mbsdec_l è identico con la differenza che utilizza il parametro passato. Per ulteriori informazioni, vedere Impostazioni locali.

Se start o current è NULL, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, questa funzione restituisce EINVAL e imposta errno su EINVAL.

Nota sulla sicurezzaNota sulla sicurezza

Queste funzioni potrebbero essere vulnerabili a rischi di sovraccarico del buffer.I sovraccarichi del buffer possono essere utilizzati per gli attacchi di sistema perché possono causare un'elevazione dei privilegi non autorizzata.Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer.

Mapping di routine su testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdec e _wcsdec sono versioni a caratteri di tipo "wide" e a caratteri a singolo byte di _mbsdec e _mbsdec_l. _strdec e _wcsdec vengono forniti solo per il mapping e in caso contrario non devono essere utilizzati.

Per ulteriori informazioni, vedere Utilizzo di mapping testo generico e Mapping testo generico.

Requisiti

Routine

Intestazione obbligatoria

Intestazione facoltativa

_mbsdec

<mbstring.h>

<mbctype.h>

_mbsdec_l

<mbstring.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

Per ulteriori informazioni di compatibilità, vedere Compatibilità.

Esempio

Nell'esempio riportato di seguito viene illustrato un utilizzo di _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); 
}

Nell'esempio riportato di seguito viene illustrato un utilizzo di _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); 
}

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Modifica di stringhe (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l