Udostępnij za pośrednictwem


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Przenosi wskaźnik ciąg wstecz o jeden znak.

Ważna uwagaWażne

mbsdec i mbsdec_l nie można używać w aplikacjach korzystających ze Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /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
);

Parametry

  • start
    Wskaźnik na dowolny znak (lub na _mbsdec i _mbsdec_l, pierwszy bajt jakiegokolwiek znaku wielobajtowego) w ciągu źródłowym; start musi następować przed current w ciągu źródłowego.

  • current
    Wskaźnik na dowolny znak (lub na _mbsdec i _mbsdec_l, pierwszy bajt jakiegokolwiek znaku wielobajtowego) w ciągu źródłowym; current musi następować po start w ciągu źródłowego.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

_mbsdec, _mbsdec_l, _strdec i _wcsdec, każdy zwraca wskaźnik do znaku znajdującego się bezpośrednio przed current; _mbsdec zwraca NULL jeśli wartość start jest większa niż lub równa current._tcsdec mapuje do jednej z tych funkcji, a jej wartość zwracana jest zależna od mapowania.

Uwagi

_mbsdec i _mbsdec_l funkcje zwracają wskaźnik do pierwszego bajtu znaków wielobajtowego, znajdującego się bezpośrednio przed current w ciągu, który zawiera start.

Wartość wyjściowa jest zależna od ustawienia z LC_CTYPE kategorii ustawienia określone w ustawieniach regionalnych; zobacz setlocale, _wsetlocale uzyskać więcej informacji._mbsdec rozpoznaje sekwencje znaków wielobajtowych według ustawień regionalnych, które jest aktualnie w użyciu, podczas gdy _mbsdec_l jest identyczny z tym, że zamiast użyto parametru ustawień regionalnych, który jest przekazywany w.Aby uzyskać więcej informacji, zobacz Regionalne.

Jeśli start lub current ma wartość NULL, zostanie wywołana procedura obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, funkcja ta zwraca EINVAL i ustawia errno jako EINVAL.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Funkcje te mogą być narażone na zagrożenia przepełnienia buforu.Przekroczenie buforu może służyć do ataków systemu, ponieważ mogą one spowodować nieuzasadnione podniesienie uprawnień.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdec i _wcsdec są wersjami znaków jednobajtowych i dwubajtowych _mbsdec i _mbsdec_l._strdec i _wcsdec są dostarczane tylko dla tego mapowania i nie powinny być używane w inny sposób.

Aby uzyskać więcej informacji, zobacz Mapowania zwykłego tekstu i Mapowania zwykłego tekstu.

Wymagania

Procedura

Wymagany nagłówek

Opcjonalny nagłówek

_mbsdec

<mbCiąg.h>

<mbctype.h>

_mbsdec_l

<mbCiąg.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

Aby uzyskać więcej informacji na temat zgodności, zobacz Zgodność.

Przykład

Poniższy przykład pokazuje wykorzystanie _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); 
}

Poniższy przykład pokazuje wykorzystanie _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); 
}

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołań platformy.

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l