C-Bibliotheksfunktionen -wctomb()

C-Standardbibliothek - <stdlib.h>

Beschreibung

C-Bibliotheksfunktionenint wctomb(char *str, wchar_t wchar)Konvertiert das BreitzeichenwcharKonvertiert es in seine Multibyte-Darstellung und speichert es instrDer Anfang des Zeichen-Arrays, auf das gezeigt wird.

Deklaration

Nachfolgend ist die Deklaration der Funktion wctomb() angegeben.

int wctomb(char *str, wchar_t wchar)

Parameter

  • str-- ein Zeiger auf ein Array, das groß genug ist, um ein Multibyte-Zeichen zu speichern.
  • wchar-- ein Breitzeichen vom Typ wchar_t.

Rückgabewert

  • Wenn str nicht NULL ist, gibt die Funktion wctomb() die Anzahl der in das Byte-Array geschriebenen Bytes zurück. Wenn wchar nicht als Multibyte-Sequenz dargestellt werden kann, gibt sie -1 zurück.
  • Wenn str NULL ist, gibt die Funktion wctomb() einen Wert ungleich null zurück, wenn die Kodierung einen Shift-Zustand hat, und null, wenn die Kodierung zustandslos ist.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Funktion wctomb().

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

int main()
{
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc(sizeof( char ));

   printf("要转换的宽字符:\n");
   i = wctomb( pmb, wc );
   printf("被转换的字符:%u\n", i);
   printf("多字节字符:%.1s\n", pmb);

   printf("当要转换的字符为 NULL 时尝试转换:\n");
   i = wctomb( pmbnull, wc );
   printf("被转换的字符:%u\n", i);
   /* 不会输出任何值 */
   printf("多字节字符:%.1s\n", pmbnull);
   
   return(0);
}

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

要转换的宽字符:
被转换的字符:1
多字节字符:a
当要转换的字符为 NULL 时尝试转换:
被转换的字符:0
多字节字符:

C-Standardbibliothek - <stdlib.h>

Weitere Erweiterungen