Freigeben über


_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.

SicherheitshinweisSicherheitshinweis

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

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l