_strdec, _wcsdec, _mbsdec, _mbsdec_l
Przenosi wskaźnik ciąg wstecz o jeden znak.
Waż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ń |
---|
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
_strinc, _wcsinc, _mbsinc, _mbsinc_l