C ++ mbtowc () - Bibliothèque standard C ++

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 @

Articles intéressants...