4

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

4

4 回答 4

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;
}
于 2012-06-01T01:24:55.887 回答
4

如果您可以接受一个字节 != 一个 unicode 字符这一事实,您可以使用 UTF-8 编码。

于 2012-06-01T01:14:10.500 回答
2

对于 unicode 类型语言,您可以使用 wchar_t 而不是 char

于 2012-06-01T01:09:57.000 回答
2

您需要使用宽字符

它们是 Unicode 所需要的,它们几乎可以处理你扔给它的每个字符,它可以做到这一点,因为 - 这就是问题所在:它消耗更多字节(两倍;听起来很多但在大多数情况下,它真的不是)。

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

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

于 2012-06-01T01:10:17.117 回答