mbtowc, _mbtowc_l
Çok baytlı karakter ilgili geniş karaktere dönüştürür.
int mbtowc(
wchar_t *wchar,
const char *mbchar,
size_t count
);
int _mbtowc_l(
wchar_t *wchar,
const char *mbchar,
size_t count,
_locale_t locale
);
Parametreler
wchar
Geniş karakterin adresi (type wchar_t).mbchar
Adresi, bir dizi bayt (çok baytlı karakter).Sayımı
Denetlemek için bayt sayısı.yerel ayar
Kullanılacak yerel ayarı.
Dönüş Değeri
Mbchar değil null ve Eğer nesne, mbchar geçerli bir çok baytlı karakter formlara işaret mbtowc çok baytlı karakter bayt cinsinden uzunluğu döndürür.mbchar Olan null veya ilişkili olduğu geniş karakter null karakteri (l '\0') nesnesidir, işlevi 0 değerini döndürür.Nesne, mbchar noktaları için geçerli bir çok baytlı karakter ilk içinde form değil sayısı karakter verdiği –1.
Notlar
mbtowc Dönüştürür işlev sayısı ya da daha az sayıda bayt olarak sıralanmasını mbchar, mbchar değil null, ilgili geniş bir karakter.mbtowcortaya çıkan geniş karakteri saklayan wchar, , wchar değil null.mbtowcincelemek değil birden fazla MB_CUR_MAX bayt. mbtowc geçerli yerel ayarı kullanan yerel ayara bağımlı davranışı; _mbtowc_lBunun yerine geçirilen yerel kullanır dışında aynıdır.Daha fazla bilgi için bkz. Yerel ayar.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
mbtowc |
<stdlib.h> |
_mbtowc_l |
<stdlib.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Kitaplıkları
Tüm sürümleri c çalışma zamanı kitaplıkları.
Örnek
// crt_mbtowc.c
/* Illustrates the behavior of the mbtowc function
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
wchar_t *pwcnull = NULL;
wchar_t *pwc = (wchar_t *)malloc( sizeof( wchar_t ) );
printf( "Convert a wide character to multibyte character:\n" );
wctomb_s( &i, pmbc, sizeof(char), wc );
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %x\n\n", *pmbc );
printf( "Convert multibyte character back to a wide "
"character:\n" );
i = mbtowc( pwc, pmbc, MB_CUR_MAX );
printf( " Bytes converted: %u\n", i );
printf( " Wide character: %x\n\n", *pwc );
printf( "Attempt to convert when target is NULL\n" );
printf( " returns the length of the multibyte character:\n" );
i = mbtowc( pwcnull, pmbc, MB_CUR_MAX );
printf( " Length of multibyte character: %u\n\n", i );
printf( "Attempt to convert a NULL pointer to a" );
printf( " wide character:\n" );
pmbc = NULL;
i = mbtowc( pwc, pmbc, MB_CUR_MAX );
printf( " Bytes converted: %u\n", i );
}
Çıktı
Convert a wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Convert multibyte character back to a wide character:
Bytes converted: 1
Wide character: 61
Attempt to convert when target is NULL
returns the length of the multibyte character:
Length of multibyte character: 1
Attempt to convert a NULL pointer to a wide character:
Bytes converted: 0
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.