wcstombs
Nach oben zu stdlib.h - Index
Header-Datei
stdlib.h
Kategorie
Konvertierungsroutinen, Routinen für Speicher- und String-Bearbeitung
Prototyp
size_t wcstombs(char *s, const wchar_t *pwcs, size_t n);
Beschreibung
Konvertiert ein Array des Typs wchar_t in einen Multibyte-String.
wcstombs konvertiert die in pwcs enthaltenen Elemente des Typs wchar_t in den Multibyte-String s. Die Konvertierung wird beendet, wenn entweder ein Nullzeichen oder ein ungültiges Multibyte-Zeichen angetroffen wird.
Es werden maximal n Bytes konvertiert. Wurden n Bytes bearbeitet, ohne dass ein Nullzeichen angetroffen wurde, ist der Multibyte-String s nicht nullterminiert.
Das Verhalten von wcstombs wird von der Einstellung der Kategorie LC_CTYPE des aktuellen Gebietsschemas beeinflusst.
Rückgabewert
Wird ein ungültiges Multibyte-Zeichen angetroffen, gibt wcstombs (size_t) -1 zurück. Andernfalls gibt die Funktion die Anzahl der geänderten Bytes zurück, ohne das eventuell vorhandene terminierende Zeichen.
Beispiel
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int x;
char *pbuf = (char*)malloc( MB_CUR_MAX);
wchar_t *pwcsEOL = L'\0';
char *pwchi= L"Hi there!";
printf (" Convert entire wchar string into a multibyte string:\n");
x = wcstombs( pbuf, pwchi,MB_CUR_MAX);
printf ("Character converted: %u\n", x);
printf ("Multibyte string character: %1s\n\n",pbuf);
printf (" Convert when target is NULL\n");
x = wcstombs( pbuf, pwcsEOL, MB_CUR_MAX);
printf ("Character converted: %u\n",x);
printf ("Multibyte string: %1s\n\n",pbuf);
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |