Partager via


_strdec, , _wcsdec_mbsdec, ,_mbsdec_l

Déplace un pointeur de chaîne d’un caractère en arrière.

Important

_mbsdec et _mbsdec_l ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

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
);

Paramètres

start
Pointeur vers n’importe quel caractère (ou pour _mbsdec et _mbsdec_l, premier octet d’un caractère multioctet) dans la chaîne source ; start doit précéder current dans la chaîne source.

current
Pointeur vers n’importe quel caractère (ou pour _mbsdec et _mbsdec_l, le premier octet d’un caractère multioctet) dans la chaîne source ; current doit suivre start dans la chaîne source.

locale
Paramètres régionaux à utiliser.

Valeur retournée

_mbsdec, _mbsdec_l, et _strdec_wcsdec chacun retourne un pointeur vers le caractère qui précède currentimmédiatement ; _mbsdec retourne NULL si la valeur est start supérieure ou égale à celle de current. _tcsdec se mappe à l’une de ces fonctions et sa valeur de retour dépend du mappage.

Notes

Les fonctions _mbsdec et _mbsdec_l retournent un pointeur désignant le premier octet du caractère multioctet qui précède immédiatement current dans la chaîne qui contient start.

La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE des paramètres régionaux. Pour plus d’informations, consultez setlocale, _wsetlocale. _mbsdec reconnaît les séquences de caractères multioctets en fonction des paramètres régionaux actuellement utilisés, tandis que _mbsdec_l est identique, à ceci près qu’elle utilise à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.

Si start ou current est NULL, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction retourne EINVAL et affecte la valeur errno à EINVAL.

Important

Ces fonctions peuvent être vulnérables aux menaces de dépassement de mémoire tampon. Les dépassements de mémoire tampon peuvent être utilisés pour les attaques du système, car ils peuvent provoquer une élévation des privilèges injustifiée. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routines de texte générique

Routine Tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tcsdec _strdec _mbsdec _wcsdec

_strdec et _wcsdec sont des versions à caractères codés sur un octet et à caractères larges de _mbsdec et _mbsdec_l. _strdec et _wcsdec sont fournis uniquement pour ce mappage et ne doivent pas être utilisés dans le cas contraire.

Pour plus d’informations, consultez Utilisation de mappages de texte générique et de mappages de texte générique.

Spécifications

Routine En-tête requis En-tête facultatif
_mbsdec <mbstring.h> <mbctype.h>
_mbsdec_l <mbstring.h> <mbctype.h>
_strdec <tchar.h>
_wcsdec <tchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

L’exemple suivant illustre une utilisation de _tcsdec.

// crt_tcsdec.cpp
// Compile by using: cl /EHsc crt_tcsdec.cpp
#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);
}

L’exemple suivant illustre une utilisation de _mbsdec.

// crt_mbsdec.cpp
// Compile by using: cl /EHsc crt_mbsdec.c
#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);
}

Voir aussi

Manipulation de chaînes
_strinc, , _wcsinc_mbsinc, ,_mbsinc_l
_strnextc, , _wcsnextc_mbsnextc, ,_mbsnextc_l
_strninc, , _wcsninc_mbsninc, ,_mbsninc_l