Funktionen wcrtomb () i C ++ konverterer en bred karakter til dens snævre multibytrepræsentation.
Wcrtomb () er defineret i headerfilen.
wcrtomb () prototype
størrelse_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Funktionen wcrtomb () konverterer det brede tegn, der er repræsenteret af wc, til et smalt multibyttegn og er gemt i den adresse, som s er peget på.
- Hvis s ikke er en nul-markør, bestemmer wcrtomb () -funktionen det maksimale antal byte, der kræves for at lagre multibytrepræsentationen af wc, og gemmer den i den hukommelsesplacering, som s er peget på. Der kan maksimalt skrives MB_CUR_MAX bytes. Værdien af ps opdateres efter behov.
- Hvis s er en nul pointer, svarer opkaldet til
wcrtomb(buf, L' ', ps)
for nogle interne buffer buf. - Hvis
wc == L' '
der lagres en nulbyte.
wcrtomb () Parametre
- s: Markør til multibyte-tegnarray for at gemme resultatet.
- wc: Bredt tegn, der skal konverteres.
- ps: Markør til den konverteringstilstand, der bruges ved fortolkning af multibyte-strengen
wcrtomb () Returværdi
- Efter succes returnerer wcrtomb () -funktionen antallet af byte, der er skrevet til tegnarrayet, hvis første element er peget på med s.
- Ved fejl (dvs. wc er ikke et gyldigt bredt tegn) returnerer det -1, errno er indstillet til EILSEQ og efterlader * ps i uspecificeret tilstand.
Eksempel: Hvordan fungerer wcrtomb () -funktionen?
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i
When you run the program, the output will be:
Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes