wctomb

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdlib.h - Index


Header-Datei

stdlib.h

Kategorie

Konvertierungsroutinen, Routinen für Speicher- und String-Bearbeitung

Prototyp

int wctomb(char *s, wchar_t wc);

Beschreibung

Konvertiert ein Zeichen des Typs wchar_t in ein Multibyte-Zeichen.

Ist s nicht NULL, ermittelt wctomb die Anzahl der Bytes, die notwendig sind, um das wc entsprechende Multibyte-Zeichen darzustellen (einschließlich eventueller Zustandsänderungen). Das Multibyte-Zeichen wird in s gespeichert. Maximal werden MB_CUR_MAX Zeichen gespeichert. Ist der Wert von wc Null, belässt wctomb den ursprünglichen Zustand.

Das Verhalten von wctomb wird von der Einstellung der Kategorie LC_CTYPE des aktuellen Gebietsschemas beeinflusst.

Rückgabewert

Ist s ein NULL-Zeiger, gibt wctomb einen Wert ungleich Null zurück, wenn Multibyte-Zeichen eine länderabhängige Codierung haben, und Null, wenn das nicht der Fall ist.

Ist s kein NULL-Zeiger, gibt wctomb -1 zurück, wenn der Wert von wc kein gültiges Multibyte-Zeichen ist. In allen anderen Fällen gibt wctomb die Anzahl der Bytes zurück, aus denen sich das wc entsprechende Multibyte-Zeichen zusammensetzt. In keinem Fall ist der Rückgabewert größer als der Wert des Makros MB_CUR_MAX.

Beispiel



 #include <stdio.h>
 #include <stdlib.h>
 void main(void)
 {
   int x;
   wchar_t wc = L'a';
   char *pmbNULL = NULL;
   char *pmb = (char *)malloc(sizeof( char ));
   printf (" Convert a wchar_t array into a multibyte string:\n");
   x = wctomb( pmb, wc);
   printf ("Character converted: %u\n", x);
   printf ("Multibyte string: %1s\n\n",pmb);
   printf (" Convert when target is NULL\n");
   x = wctomb( pmbNULL, wc);
   printf ("Character converted: %u\n",x);
   printf ("Multibyte stri ng: %1s\n\n",pmbNULL);
 
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

+

+

+

+