c语言实现单独显示汉字

#include <tchar.h>
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <locale.h>
//单独显示汉字,显示中文,在vs2008控制台程序中实现
int main()
{
	wchar_t wText[]= {L"宽字符转换实例!OK!测试"};
	setlocale( LC_ALL, "chs" );
	wprintf(L"原宽字符串为:%s\n",wText);
	for(int i=0;i<wcslen(wText);i++)
	{
		wprintf(L"%c\t",wText[i]);
	}
	wprintf(L"\n");

	printf("宽字符长度为:%d\n",wcslen(wText));
	//宽字符不能直接输出在shell上,先转换为多字节再输出,就是完整的中文了
	int len = WideCharToMultiByte(CP_THREAD_ACP,NULL,wText,-1,NULL,0,NULL,FALSE);
	char *psText;
	psText = new char[len+1];
	memset(psText,0,len);
	WideCharToMultiByte (CP_THREAD_ACP,NULL,wText,-1,psText,len+1,NULL,FALSE);
	printf("转换为多字节后的长度为:%d\n",len);
	for(int j=0;j<len;j+=2)
	{
		char tx[20]={0};
		//两个字符来显示一个中文。。。其他的办法不知道了。
		sprintf(tx,"%c%c",psText[j],psText[j+1]);
		printf("%s\t",tx);
		///printf("%c%c\n",psText[j],psText[j+1]);

	}
	printf("\n");

	getchar();	
	return 0;
}

你可能感兴趣的:(c语言实现单独显示汉字)