我意识到我的程序必须能够处理日语或中文等特殊字符。但我知道内置类型char
远远不够。那么如何在C程序中使用这些特殊字符呢?
答案 0 :(得分:5)
#include <tchar.h>
typedef struct _我的结构{
int 数据;
TCHAR 字符串指针[100];
}我的结构;
int main(int argc,char** argv){
我的结构 我的变量 = {1, _T("字符串123abc")};
_tprintf(_T("%s, %d"),我的变量.字符串指针,我的变量.字符串指针);
return 0;
}
答案 1 :(得分:4)
如果你能接受一个字节!=一个unicode字符的事实,你可以使用UTF-8编码。
答案 2 :(得分:2)
对于unicode类型语言,您可以使用wchar_t而不是char
答案 3 :(得分:2)
您需要使用wide characters。
它们是你需要的Unicode,它们几乎可以与你抛出的每个字符一起工作,并且它可以做到这一点,因为 - 这就是捕获:它消耗更多的字节(两倍;它听起来很多,但在大多数情况下,它真的不是。)
注意:
在Windows编程中,您使用TEXT("")
宏来选择字符是Unicode还是ANSI。它会根据你项目的设置选择
如果您坚持使用Unicode,则可以使用L
字母的前缀来编写字符串,如下所示:L"Unicode String"
使用宽字符的头文件是wchar.h
。