首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-04 
Linux下如何将wchar_t* 转换成char*?如题!查过一些资料,都说用WideCharToString,WideCharToMultiByte都可

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

热点排行