A wcrtomb () függvény a C ++ nyelven széles karaktert alakít át keskeny többbájtos ábrázolásává.
A wcrtomb () a fejlécfájlban van megadva.
wcrtomb () prototípus
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
A wcrtomb () függvény a wc által képviselt széles karaktert keskeny többbájtos jellé alakítja, és az s által jelzett címben tárolódik.
- Ha s nem null mutató, akkor a wcrtomb () függvény meghatározza a wc multibyte-os ábrázolásának tárolásához szükséges bájtok maximális számát, és eltárolja azt az memóriahelyen, amelyre s mutat. Legfeljebb MB_CUR_MAX bájt írható. A ps értéke szükség szerint frissül.
- Ha s nullmutató, akkor a hívás megegyezik
wcrtomb(buf, L' ', ps)
néhány belső puffer-buféval. - Ha
wc == L' '
null bájt tárolódik.
wcrtomb () Paraméterek
- s: A többbájtos karaktertömb mutatója az eredmény tárolásához.
- wc: Széles karakter az átalakításhoz.
- ps: A többbájtos karakterlánc értelmezésekor használt konverziós állapot mutatója
wcrtomb () Visszatérési érték
- Siker esetén a wcrtomb () függvény visszaadja a karaktertömbbe írt bájtok számát, amelynek első elemére s mutat.
- Meghibásodáskor (azaz a wc nem érvényes széles karakter) visszatér -1 értékre , az errno értéke EILSEQ, és a * ps nem meghatározott állapotban marad.
Példa: Hogyan működik a wcrtomb () függvény?
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i
When you run the program, the output will be:
Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes