mbstowcs
Nach oben zu stdlib.h - Index
Header-Datei
stdlib.h
Kategorie
Konvertierungsroutinen, Routinen für Speicher- und String-Bearbeitung
Prototyp
size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);
Beschreibung
Konvertiert einen Multibyte-String in ein Array des Typs wchar_t.
Die Funktion konvertiert den Multibyte-String s in das Array, auf das pwcs zeigt. Im Array werden nicht mehr als n Werte gespeichert. Wird eine ungültige Multibyte-Sequenz angetroffen, gibt mbstowcs (size_t) -1 zurück.
Das Array pwcs wird nicht durch ein Nullzeichen abgeschlossen, wenn mbstowcs n zurückgibt.
Rückgabewert
Wird eine ungültige Multibyte-Sequenz angetroffen, gibt mbstowcs (size_t) -1 zurück. Andernfalls gibt die Funktion die Anzahl der geänderten Array-Elemente zurück, ohne das eventuell vorhandene terminierende Zeichen.
Beispiel
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int x;
char *mbst = (char *)malloc(MB_CUR_MAX);
wchar_t *pwst = L"Hi";
wchar_t *pwc = (wchar_t *)malloc(sizeof( wchar_t));
printf ("Convert to multibyte string:\n");
x = wcstombs (mbst, pwst, MB_CUR_MAX);
printf ("\tCharacters converted %u\n",x);
printf ("\tHEx value of first");
printf (" multibyte character: %#.4x\n\n", mbst);
printf ("Convert back to wide character string:\n");
x = mbstowcs(pwc, mbst, MB_CUR_MAX);
printf( "\tCharacters converted: %u\n",x);
printf( "\tHex value of first");
printf( "wide character: %#.4x\n\n", pwc);
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |