Udostępnij za pośrednictwem


_strdec, _wcsdec, _mbsdec, _mbsdec_l

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

Ważna uwagaWażne

mbsdeci mbsdec_l nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsł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 do dowolnego znaku (lub dla _mbsdec i _mbsdec_l, pierwszy bajt żadnych znaków wielobajtowych) w ciągu źródłowego; startmuszą znajdować się przed current w ciągu źródłowego.

  • current
    Wskaźnik do dowolnego znaku (lub dla _mbsdec i _mbsdec_l, pierwszy bajt żadnych znaków wielobajtowych) w ciągu źródłowego; currentnależy wykonać, start w ciągu źródłowego.

  • locale
    Ustawienia regionalne używane.

Wartość zwracana

_mbsdec, _mbsdec_l, _strdec, i _wcsdec każdy zwraca wskaźnik do znaku znajdującego się bezpośrednio przed current; _mbsdecZwraca NULL Jeśli wartość start jest większa niż lub równa się current._tcsdecmapy do jednego z tych funkcji i jej wartość zwracana jest zależny od mapowanie.

Uwagi

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

Wartość produkcji jest zależny od ustawienia z LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setLocale, _wsetlocale Aby uzyskać więcej informacji._mbsdecrozpoznaje sekwencje znaków wielobajtowych w zależności od ustawień regionalnych, które jest aktualnie używany, podczas gdy _mbsdec_l jest identyczny z tym, że zamiast tego wykorzystuje parametr ustawień regionalnych, który jest przekazywana.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Jeśli start lub current jest NULL, program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ta funkcja zwraca EINVAL i ustawia errno do EINVAL.

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

Tych funkcji może być narażony na zagrożenia przepełnienie buforu.Przekroczenia buforu może służyć do systemu ataków, ponieważ mogą one powodować nieuzasadnione podniesienie uprawnień.Aby uzyskać więcej informacji, zobacz Unikanie przekroczeniem buforu.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdeci _wcsdec -bajt jednoznakowy i szerokich znaków wersje _mbsdec i _mbsdec_l._strdeci _wcsdec są dostarczane tylko dla tego mapowania i nie powinny być używane w inny sposób.

Aby uzyskać więcej informacji, zobacz Korzystanie z mapowań tekst rodzajowy i Tekst rodzajowy mapowania.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

Opcjonalny nagłówka

_mbsdec

<mbstring.h>

<mbctype.h>

_mbsdec_l

<mbstring.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

Informacji dotyczących zgodności, zobacz Zgodność.

Przykład

Poniższy przykład pokazuje użycie _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 użycie _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ływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Platforma wywołać przykłady.

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l