Sdílet prostřednictvím


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Přesune zpět jeden znak řetězec ukazatele.

Důležitá poznámkaDůležité

mbsdeca mbsdec_l nelze použít v aplikacích, které jsou spuštěny v Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /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
    Ukazatel na libovolný znak (nebo pro _mbsdec ambsdec_l, první bajt všechny vícebajtové znakové) ve zdrojovém řetězci; startmusí předcházet current ve zdrojovém řetězci.

  • current
    Ukazatel na libovolný znak (nebo pro _mbsdec ambsdec_l, první bajt všechny vícebajtové znakové) ve zdrojovém řetězci; currentPostupujte podle start ve zdrojovém řetězci.

  • locale
    Chcete-li národní prostředí pro použití.

Vrácená hodnota

_mbsdec, _mbsdec_l, _strdec, a _wcsdec každý vrací ukazatel na znak, který bezprostředně předchází current; _mbsdecVrátí NULL -li hodnota start je větší než nebo rovna částce current._tcsdecmapování na jednu z těchto funkcí a její vrácená hodnota závisí na mapování.

Poznámky

_mbsdec a _mbsdec_l funkce vrací ukazatel na první bajt vícebajtových znaků, který bezprostředně předchází current v řetězci, který obsahuje start.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE kategorie nastavení národního prostředí; Viz setlocale _wsetlocale Další informace._mbsdecrozpozná vícebajtové znakové sekvence podle národního prostředí, který je právě používán, zatímco _mbsdec_l je totožný s tím rozdílem, že místo toho používá parametr locale, který je předán v.Další informace naleznete v tématu Národní prostředí.

Pokud start nebo current je NULL, je vyvolána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno zpracování, chcete-li pokračovat, tato funkce vrací EINVAL a errno na EINVAL.

Poznámka k zabezpečeníPoznámka k zabezpečení

Tyto funkce může být zranitelný vůči hrozbám přetečení vyrovnávací paměti.Přeběhy vyrovnávací paměti lze použít pro napadení systému, protože mohou způsobit, že bude vyplacena neoprávněně zvýšení úrovně oprávnění.Další informace naleznete v tématu Zamezení způsobí přetečení vyrovnávací paměti.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdeca _wcsdec jsou jeden bajt znak a širokého znaku verze _mbsdec a _mbsdec_l._strdeca _wcsdec jsou k dispozici pouze pro toto mapování a by neměly být použity jinak.

Další informace naleznete v tématu Použití mapování Generic Text a Mapování Generic Text.

Požadavky

Byla zahájena rutina

Požadované záhlaví

Volitelné záhlaví

_mbsdec

<mbstring.h>

<mbctype.h>

_mbsdec_l

<mbstring.h>

<mbctype.h>

_strdec

<tchar.h>

 

_wcsdec

<tchar.h>

 

Další informace o kompatibilitě v tématu Kompatibilita.

Příklad

Následující příklad ukazuje použití _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); 
}

Následující příklad ukazuje použití _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); 
}

Ekvivalent v rozhraní .NET Framework

Nelze použít Volání funkce standardním C pomocí PInvoke. Další informace naleznete v tématu Příklady volání funkce platformy.

Viz také

Referenční dokumentace

Manipulaci s řetězci (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l