mbrlen

Déterminez le nombre d'octets dans une chaîne, avec la fonction de redémarrer au milieu d'un caractère multioctets si besoin est, en utilisant les paramètres régionaux.

size_t mbrlen(
   const char *str,
   size_t maxSize,
   mbstate_t mbstate
);

Paramètres

  • str
    Chaîne terminée par le caractère NULL.

  • maxSize
    La taille maximale de la chaîne, à l'exception de le caractère NULL de fin.

  • mbstate
    l'état de décalage de la conversion.

Valeur de retour

Si la chaîne est moins que des caractères d' maxSize dans la longueur, chacune de ces fonctions retourne le nombre de caractères dans str, à l'exclusion d' NULLterminal.Si la chaîne est plus grande que des caractères d' maxSize dans la longueur, alors maxSize est retourné.

  • 0
    Si le nombre suivant ou moins octets finaliser le caractère multioctets qui représente le caractère élargi d' NULL .

  • > 0
    Si le nombre suivant ou moins octets en un caractère multioctets valide, la valeur retournée est le nombre d'octets qui finaliser le caractère multioctets.

  • -1
    Si les octets suivants de nombre contribuent à un multioctets incomplet et les octets de nombre ont été traités.

  • -2
    Si une erreur d'encodage se produit, auquel cas le nombre suivant ou moins octets ne fournissent pas au caractère multioctets terminé et valide, la valeur errno de valeur sera EILSEQ et le rapport de conversion ambiguë.

Notes

La fonction d' mbrlen détermine le nombre d'octets constituant la séquence de caractères multioctets d' str, avec la fonction de redémarrer au milieu d'un caractère multioctets si besoin est, la au plus des octets d' maxSize .L'argument mbstate d' mbstate_t est utilisé pour gérer l'état de décalage.s'il est NULL, mbrlen utilise un objet interne et statique d' mbstate_t .il est équivalent à :

mbrtowc(NULL, str, maxSize, mbstate)

Sauf lorsque le cas d' mbstate est NULL, mbrlen compte lors de sa propre statique, objet interne d' mbstate_t pour gérer l'état de décalage.

la fonction d' mbrlen diffère de _mbclen, mblen, _mblen_l par sa capacité à redémarrer.Le rapport de conversion est stocké dans mbstate pour les appels suivants à la même transparence ou à d'autres fonctions restartable.Les résultats sont indéfinis en combinant l'utilisation des fonctions restartable et nonrestartable.Par exemple, une application utilise wcsrlen plutôt qu' wcslen, si un appel suivant à wcsrtombs où utilisé au lieu d' wcstombs.

mappages de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

n/a

n/a

mbrlen

n/a

Configuration requise

routine

en-tête requis

mbrlen

<wchar.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

// crt_mbrlen.c

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <wchar.h>

size_t Example(const char * pStr)
{
    size_t      charLen = 0;
    size_t      charCount = 0;
    mbstate_t   mbState;

    memset(&mbState, 0, sizeof(mbState));
    
    while ((charLen = mbrlen(pStr, MB_CUR_MAX, &mbState)) != 0 &&
            charLen != (size_t)-1 && charLen != (size_t)-2)
    {
        pStr += charLen;
        charCount++;
    } 

    return (charCount);
} 

int main( void )
{
    size_t      charCount = 0;
    const char  *pSample = "Every good boy does fine.";

    charCount = Example(pSample);
    printf("%s\nLength: %d\n", pSample, charCount);
}
  
  

Équivalent .NET Framework

System : : chaîne : : longueur

Voir aussi

Référence

Manipulation de chaînes (CRT)

Paramètres régionaux