La fonction wcrtomb () en C ++ convertit un caractère large en sa représentation multi-octets étroite.
Le wcrtomb () est défini dans le fichier d'en-tête.
prototype wcrtomb ()
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
La fonction wcrtomb () convertit le caractère large représenté par wc en un caractère multi-octets étroit et est stocké dans l'adresse pointée par s.
- Si s n'est pas un pointeur nul, la fonction wcrtomb () détermine le nombre maximum d'octets requis pour stocker la représentation multi-octets de wc et la stocke dans l'emplacement mémoire pointé par s. Un maximum de MB_CUR_MAX octets peut être écrit. La valeur de ps est mise à jour selon les besoins.
- Si s est un pointeur nul, l'appel est équivalent à
wcrtomb(buf, L' ', ps)
pour un tampon interne buf. - Si
wc == L' '
, un octet nul est stocké.
Paramètres de wcrtomb ()
- s: pointeur vers le tableau de caractères multi-octets pour stocker le résultat.
- wc: caractère large à convertir.
- ps: pointeur vers l'état de conversion utilisé lors de l'interprétation de la chaîne multi-octets
wcrtomb () Valeur de retour
- En cas de succès, la fonction wcrtomb () renvoie le nombre d'octets écrits dans le tableau de caractères dont le premier élément est pointé par s.
- En cas d'échec (c'est-à-dire que wc n'est pas un caractère large valide), il renvoie -1, errno est mis à EILSEQ et laisse * ps dans un état non spécifié.
Exemple: Comment fonctionne la fonction wcrtomb ()?
#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