如何在C中使用特殊字符?

One*_*ero 4 c internationalization

我意识到我的程序必须能够处理日语或中文等特殊字符.但我知道内置类型char远远不够.那么如何在C程序中使用这些特殊字符呢?

Rol*_*dXu 5

像这样在Windows VS :)

#include <tchar.h>
typedef struct _????{
    int ??;
    TCHAR ?????[100];
}????;
int main(int argc,char** argv){
    ???? ???? = {1, _T("???123abc")};
    _tprintf(_T("%s, %d"),????.?????,????.?????);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Mas*_*tic 2

您需要使用宽字符

它们是 Unicode 所需要的,它们几乎可以处理您输入的每个字符,并且它可以做到这一点,因为 - 这就是问题:它消耗更多字节(两倍;听起来很多,但是在大多数情况下,事实并非如此)。

注意:在 Windows 编程中,您可以使用TEXT("")宏来选择字符是 Unicode 还是 ANSI。它将根据您的项目设置进行选择。
如果您坚持使用 Unicode,您可以使用字母前缀编写字符串,L如下所示:L"Unicode String"

使用宽字符的头文件是wchar.h.