La fonction mbrlen () en C ++ détermine la taille en octets d'un caractère multi-octets.
La fonction mbrlen () est définie dans le fichier d'en-tête.
prototype mbrlen ()
size_t mbrlen (const char * s, size_t n, mbstate_t * ps);
La fonction mbrlen () examine la chaîne dont le premier octet est pointé par s et détermine sa taille en octets pour l'état de conversion courant ps. Au plus n octets dans s sont examinés.
Paramètres mbrlen ()
- s: pointeur vers le premier octet de la chaîne multi-octets à examiner.
- n: MAximum d'octets en s à examiner.
- ps: pointeur vers l'objet mbstate_t qui définit un état de conversion.
mbrlen () Valeur de retour
La fonction mbrlen () renvoie:
- Le nombre d'octets qui complètent un caractère multi-octets valide.
- 0 si s pointe vers un caractère nul.
- -1 est une erreur de codage.
- -2 si les n octets suivants ne représentent pas un caractère multi-octets complet.
Exemple: Comment fonctionne la fonction mbrlen ()?
#include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )
Lorsque vous exécutez le programme, la sortie sera:
Le ou les 1 octets suivants ne représentent pas un caractère multioctet complet Les 5 octets suivants de µ contiennent 2 octets de caractère multioctet