Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Macro MB_CUR_MAX

La fonction malloc La fonction mblen


Entête à inclure

#include <stdlib.h>  // <cstdlib> en C++

MACRO MB_CUR_MAX

#define    MB_CUR_MAX  (__ctype_get_mb_cur_max ())

Renvoi la longueur maximale d'un caractère multi-octets dans la localisation courante. Cette longueur est déterminer via une expression qui tiendra compte de la localisation en cours d'utilisation.

pour changer la localisation courante, vous devez utiliser la fonction setlocale définie dans l'entête <locale.h>. Par défaut, c'est le locale "C" qui est utilisé (en fait, l'encodage ASCII avec ses 128 caractères).

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>


int main() {

    setlocale( LC_ALL, "C" );
    printf( "ASCII => %lu \n", MB_CUR_MAX );

    setlocale( LC_ALL, "en_US.iso-8859-1" );
    printf( "ISO-8859-1 => %lu \n", MB_CUR_MAX );

    setlocale( LC_ALL, "en_US.utf8" );
    printf( "UTF-8 => %lu \n", MB_CUR_MAX );

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la macro MB_CUR_MAX

Et voici les résultats produits par cet exemple :

$> gcc -o sample sample.c
$> ./sample
ASCII => 1 
ISO-8859-1 => 1 
UTF-8 => 6 
$> 

Sujets connexes

mblen
mbstowcs
mbtowc
wcstombs wctomb


La fonction malloc La fonction mblen