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