Sdílet prostřednictvím


_strdec, _wcsdec, _mbsdec, _mbsdec_l

Přesune ukazatel řetězce zpět o jeden znak.

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

mbsdec a mbsdec_l nelze použít v aplikacích, které jsou spouštěny v prostředí 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 a _mbsdec_l první bajt libovolného vícebajtového znaku) ve zdrojovém řetězci; start musí předcházet current ve zdrojovém řetězci.

  • current
    Ukazatel na libovolný znak (nebo pro _mbsdec a _mbsdec_l první bajt libovolného vícebajtového znaku) ve zdrojovém řetězci; current musí následovat po start ve zdrojovém řetězci.

  • locale
    Použité národní prostředí.

Vrácená hodnota

_mbsdec, _mbsdec_l, _strdec a _wcsdec vrátí ukazatel na znak, který přímo předchází current; _mbsdec vrátí NULL, pokud hodnota start je větší než nebo rovna hodnotě current._tcsdec mapuje na jednu z těchto funkcí a vrácená hodnota závisí na mapování.

Poznámky

Funkce _mbsdec a _mbsdec_l vrací ukazatel na první bajtu vícebajtového znaku, která bezprostředně předchází current v řetězci, který obsahuje start.

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

Pokud start nebo current je NULL, je vyvolána obslužná rutina neplatné parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, tato funkce vrátí EINVAL a nastaví errno na EINVAL.

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

Tyto funkce by mohly být vystaveny ohrožení přetečení vyrovnávací paměti.Přetečení zásobníku lze použít pro systémové útoky, protože mohou způsobit neoprávněné zvýšení úrovně oprávnění.Další informace naleznete v tématu Předcházení přetečení vyrovnávací paměti.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tcsdec

_strdec

_mbsdec

_wcsdec

_strdec a _wcsdec jsou verze jednobajtového znaku a širokoznaká verze _mbsdec a _mbsdec_l._strdec a _wcsdec jsou k dispozici pouze pro toto mapování a neměly by být použity jinak.

Další informace naleznete v tématu Použití mapování obecného textu a Mapování obecného textu.

Požadavky

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ě naleznete 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. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Zacházení s řetězci (CRT)

_strinc, _wcsinc, _mbsinc, _mbsinc_l

_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l

_strninc, _wcsninc, _mbsninc, _mbsninc_l