C ++ mbrlen () - Libreria standard C ++

La funzione mbrlen () in C ++ determina la dimensione in byte di un carattere multibyte.

La funzione mbrlen () è definita nel file di intestazione.

prototipo di mbrlen ()

 size_t mbrlen (const char * s, size_t n, mbstate_t * ps);

La funzione mbrlen () esamina la stringa il cui primo byte è puntato da s e determina la sua dimensione in byte per lo stato di conversione corrente ps. Vengono esaminati al massimo n byte in s.

Parametri mbrlen ()

  • s: puntatore al primo byte della stringa multibyte da esaminare.
  • n: numero massimo di byte in s da esaminare.
  • ps: puntatore all'oggetto mbstate_t che definisce uno stato di conversione.

mbrlen () Restituisce il valore

La funzione mbrlen () restituisce:

  • Il numero di byte che completano un carattere multibyte valido.
  • 0 se s punta a un carattere nullo.
  • -1 è un errore di codifica.
  • -2 se i successivi n byte non rappresentano un carattere multibyte completo.

Esempio: come funziona la funzione 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; )

Quando esegui il programma, l'output sarà:

 Il prossimo 1 byte non rappresenta un carattere multibyte completo I successivi 5 byte di µ contengono 2 byte di carattere multibyte

Articoli interessanti...