_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 , NULLhandler 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