La fonction mbtowc () en C ++ convertit un caractère multi-octets en un caractère large.
La fonction mbtwoc () est définie dans le fichier d'en-tête.
prototype mbtowc ()
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
La fonction mbtowc () prend trois arguments et renvoie une valeur entière. Cette fonction convertit le caractère multi-octets pointé par pmb en un caractère large (valeur de type wchar_t) et est stocké à l'emplacement mémoire pointé par pwc.
Si pmb est un pointeur nul, un appel à mbtowc () réinitialisera l'état de conversion global et déterminera si des séquences de décalage sont utilisées.
Paramètres mbtowc ()
- pwc: pointeur vers le caractère large résultant
- pmb: pointeur vers le caractère multi-octets qui est converti en caractère large
- max: taille maximale en octets de pmb à prendre en compte pour le caractère multi-octets.
mbtowc () Valeur renvoyée
Si pmb n'est pas un pointeur nul, mbtowc () renvoie:
- le nombre d'octets contenus dans le caractère multi-octets pointé par pmb.
- -1 si le premier octet pointé par pmb ne forme pas un caractère multi-octets valide.
- 0 si pmb pointe vers le caractère nul de fin, c'est-à-dire « 0».
Si pmb est un pointeur nul, réinitialise son état de conversion interne pour représenter l'état de décalage initial et retourne:
- 0 si le codage multi-octets actuel n'est pas dépendant de l'état (n'utilise pas de séquences de décalage)
- une valeur non nulle si le codage multi-octets actuel dépend de l'état (utilise des séquences de décalage).
Exemple: Comment fonctionne la fonction mbtowc ()?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Lorsque vous exécutez le programme, une sortie possible sera:
Valeur de retour = 1 Chaîne de caractères large: W @