La funzione c16rtomb () in C ++ converte la rappresentazione di caratteri a 16 bit in una rappresentazione di caratteri multibyte stretta.
La funzione c16rtomb () è definita nel file di intestazione.
c16rtomb () Prototipo
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
La funzione c16rtomb () converte il carattere utf-16 c16 nel suo equivalente multibyte e lo memorizza nell'oggetto puntato da s.
Se s rappresenta un puntatore nullo, la chiamata è equivalente a c16rtomb (buf, u ' 0', ps) per qualche buffer buf interno.
Se c16 è il carattere ampio nullo, ovvero u ' 0', viene memorizzato un byte nullo.
Parametri c16rtomb ()
- s: puntatore a un array di caratteri in cui deve essere memorizzato il carattere multibyte.
- c16: il carattere a 16 bit da convertire.
- ps: puntatore a un oggetto mbstate_t utilizzato durante l'interpretazione della stringa multibyte.
c16rtomb () Restituisce il valore
- In caso di successo, la funzione c16rtomb () restituisce il numero di byte scritti nell'array di caratteri a cui punta s.
- In caso di errore, viene restituito -1 e EILSEQ viene memorizzato in errno.
Esempio: come funziona la funzione c16rtomb ()?
#include #include using namespace std; int main() ( const char16_t str() = u"Hello World!"; char s(50); mbstate_t ps(); size_t length; int j = 0; while (str(j)) ( length = c16rtomb(s, str(j), &ps); if ((length == 0) || (length> 50)) break; for (int i=0; i
When you run the program, the output will be:
Hello World!