_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 current
immé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