_strdec
, _wcsdec
, _mbsdec
, _mbsdec_l
Memindahkan penunjuk string ke belakang satu karakter.
Penting
_mbsdec
dan _mbsdec_l
tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
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
);
Parameter
start
Penunjuk ke karakter apa pun (atau untuk _mbsdec
dan _mbsdec_l
, byte pertama dari setiap karakter multibyte) dalam string sumber; start
harus mendahului current
dalam string sumber.
current
Penunjuk ke karakter apa pun (atau untuk _mbsdec
dan _mbsdec_l
, byte pertama dari setiap karakter multibyte) dalam string sumber; current
harus mengikuti start
dalam string sumber.
locale
Lokal untuk digunakan.
Nilai hasil
_mbsdec
, , _mbsdec_l
_strdec
, dan _wcsdec
masing-masing mengembalikan penunjuk ke karakter yang segera mendahului current
; _mbsdec
mengembalikan NULL
jika nilai start
lebih besar dari atau sama dengan current
. _tcsdec
memetakan ke salah satu fungsi ini dan nilai pengembaliannya tergantung pada pemetaan.
Keterangan
Fungsi _mbsdec
dan _mbsdec_l
mengembalikan penunjuk ke byte pertama dari karakter multibyte yang segera mendahului current
dalam string yang berisi start
.
Nilai output dipengaruhi oleh pengaturan LC_CTYPE
pengaturan kategori lokal. Untuk informasi selengkapnya, lihat setlocale
, _wsetlocale
. _mbsdec
mengenali urutan karakter multibyte sesuai dengan lokal yang saat ini digunakan, sementara _mbsdec_l
identik kecuali sebaliknya menggunakan parameter lokal yang diteruskan. Untuk informasi selengkapnya, lihat Lokal.
Jika start
atau current
, NULL
handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini mengembalikan EINVAL
dan mengatur errno
ke EINVAL
.
Penting
Fungsi-fungsi ini mungkin rentan terhadap ancaman buffer yang diserbu. Overruns buffer dapat digunakan untuk serangan sistem karena dapat menyebabkan peningkatan hak istimewa yang tidak beralasan. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcsdec |
_strdec |
_mbsdec |
_wcsdec |
_strdec
dan _wcsdec
merupakan versi karakter byte tunggal dan karakter luas dan _mbsdec
_mbsdec_l
. _strdec
dan _wcsdec
disediakan hanya untuk pemetaan ini dan tidak boleh digunakan sebaliknya.
Untuk informasi selengkapnya, lihat Menggunakan pemetaan teks generik dan Pemetaan teks generik.
Persyaratan
Rutin | Header yang diperlukan | Header opsional |
---|---|---|
_mbsdec |
<mbstring.h> | <mbctype.h> |
_mbsdec_l |
<mbstring.h> | <mbctype.h> |
_strdec |
<tchar.h> | |
_wcsdec |
<tchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Contoh berikut menunjukkan penggunaan _tcsdec
.
// crt_tcsdec.cpp
// Compile by using: cl /EHsc crt_tcsdec.cpp
#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);
}
Contoh berikut menunjukkan penggunaan _mbsdec
.
// crt_mbsdec.cpp
// Compile by using: cl /EHsc crt_mbsdec.c
#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);
}
Baca juga
Manipulasi string
_strinc
, _wcsinc
, _mbsinc
, _mbsinc_l
_strnextc
, _wcsnextc
, _mbsnextc
, _mbsnextc_l
_strninc
, _wcsninc
, _mbsninc
, _mbsninc_l
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk