读书人

Linux下怎么将wchar_t* 转换成char*

发布时间: 2012-03-04 11:13:33 作者: rapoo

Linux下如何将wchar_t* 转换成char*?
如题!
查过一些资料,都说用WideCharToString,
WideCharToMultiByte都可以解决,但这两个函数只能在Window下使用,不知道在Linux下如何转换?

[解决办法]

Converts a wide character to the corresponding multibyte character.

int wctomb(
char *mbchar,
wchar_t wchar
);

Example
/* WCTOMB.CPP illustrates the behavior of the wctomb function */

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

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

printf( "Convert a wide character:\n " );
i = wctomb( pmb, wc );
printf( "\tCharacters converted: %u\n ", i );
printf( "\tMultibyte character: %.1s\n\n ", pmb );

printf( "Attempt to convert when target is NULL:\n " );
i = wctomb( pmbnull, wc );
printf( "\tCharacters converted: %u\n ", i );
printf( "\tMultibyte character: %.1s\n ", pmbnull );
}

Output
Convert a wide character:
Characters converted: 1
Multibyte character: a

Attempt to convert when target is NULL:
Characters converted: 0
Multibyte character: (

[解决办法]
iconv

读书人网 >C语言

热点推荐