_strdec, _wcsdec, _mbsdec, _mbsdec_l
Setzt einen Zeichenfolgenzeiger um ein Zeichen zurück.
Wichtig
mbsdec und mbsdec_l können in Anwendungen, die in Windows-Runtime ausgeführt werden, nicht verwendet werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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
);
Parameter
start
Zeiger auf ein beliebiges Zeichen (oder bei _mbsdec und _mbsdec_l das erste Byte eines Multibytezeichens) in der Quellzeichenfolge. In der Quellzeichenfolge muss start vor current stehen.current
Zeiger auf ein beliebiges Zeichen (oder bei _mbsdec und _mbsdec_l das erste Byte eines Multibytezeichens) in der Quellzeichenfolge. In der Quellzeichenfolge muss current nach start stehen.locale
Zu verwendendes Gebietsschema.
Rückgabewert
__mbsdec,mbsdec_l, _strdec und _wcsdec geben jeweils einen Zeiger auf das Zeichen zurück, das unmittelbar vor current steht. _mbsdec gibt NULL zurück, wenn der Wert von start größer oder gleich current ist. _tcsdec wird einer dieser Funktionen zugeordnet und der Rückgabewert hängt von der Zuordnung ab.
Hinweise
Die Funktionen _mbsdec und _mbsdec_l geben einen Zeiger auf das erste Byte des Multibytezeichens zurück, das unmittelbar vor current in der Zeichenfolge steht, die start enthält.
Der Ausgabewert wird durch die Einstellung der LC_CTYPE-Kategorieneinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale, _wsetlocale. _mbsdec erkennt Multibytezeichensequenzen nach dem derzeit verwendeten Gebietsschema. _mbsdec_l ist nahezu identisch, verwendet jedoch stattdessen den übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Wenn start oder current den Wert NULL aufweisen, wird der Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion EINVAL zurück und stellt errno auf EINVAL ein.
Sicherheitshinweis |
---|
Diese Funktionen sind möglicherweise für Pufferüberlaufrisiken anfällig.Pufferüberläufe können für Systemangriffe eingesetzt werden, da sie zu einer unbefugten Ausweitung der Berechtigungen führen.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen. |
Zuordnung generischer Textroutinen
Tchar.h-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsdec |
_strdec |
_mbsdec |
_wcsdec |
_strdec und _wcsdec sind Einzelbytezeichen- und Breitzeichenversionen von _mbsdec und _mbsdec_l. _strdec und _wcsdec werden nur für diese Zuordnung bereitgestellt und sollten nicht für andere Zwecke verwendet werden.
Weitere Informationen finden Sie unter Verwenden von Zuordnungen für generischen Text und Zuordnungen für generischen Text.
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_mbsdec |
<mbstring.h> |
<mbctype.h> |
_mbsdec_l |
<mbstring.h> |
<mbctype.h> |
_strdec |
<tchar.h> |
|
_wcsdec |
<tchar.h> |
|
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Im folgenden Beispiel wird eine Verwendung von _tcsdec veranschaulicht.
#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);
}
Im folgenden Beispiel wird eine Verwendung von _mbsdec veranschaulicht.
#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-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)
_strinc, _wcsinc, _mbsinc, _mbsinc_l