La fonction mbstowcs () en C ++ convertit une chaîne de caractères multi-octets en une séquence de caractères large équivalente.
La fonction mbstowcs () est définie dans le fichier d'en-tête.
prototype mbstowcs ()
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
La fonction mbstowcs () prend trois arguments et renvoie une valeur entière.
Cette fonction convertit la chaîne de caractères multi-octets dont le premier élément est pointé par src en sa représentation à caractère large (valeur de type wchar_t).
Le résultat est stocké à l'emplacement mémoire pointé par dest. Le paramètre max représente le nombre maximum de caractères multi-octets à convertir.
Le mécanisme de conversion est le même que celui de mbtowc (), sauf que l'état de conversion mbtowc n'est pas affecté. La conversion s'arrête si:
- Un caractère nul est rencontré, qui est ensuite converti et stocké.
- Un caractère multi-octets non valide est rencontré.
- le nombre maximum de caractères multi-octets a été converti.
Paramètres de mbstowcs ()
- dest: pointeur vers le tableau de caractères large résultant.
- src: pointeur vers le premier élément du caractère multi-octets qui est converti en caractère large.
- max: nombre maximum de caractères multi-octets à convertir.
mbstowcs () Valeur renvoyée
- Si la conversion réussit, mbstowcs () renvoie le nombre de caractères larges à l'exclusion du caractère de fin (c'est-à-dire « 0») qui est écrit dans le tableau de destination.
- Si une erreur se produit pendant la conversion, elle renvoie -1.
Exemple: Comment fonctionne la fonction mbstowcs ()?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Lorsque vous exécutez le programme, une sortie possible sera:
Nombre de caractères larges convertis = 1 Chaîne de caractères larges = ─