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

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

Articles intéressants...