c语言怎么储存字母,c语言怎么用变量存储中文字符?书本上面没有的秘密

很多学习者做一开始学习c语言的时候都会有想过处理中文的想法,但找不到方法而放弃,但其实方法十分简单。我们下面进入正题吧。

所有学习C语言的学习者都知道ASCII码,甚至很多初学者都认为C语言所用的就只是ASCII码,只可以使用英文字符。

而ASCII码是用一个字节的长度来表示那些字符,我们常用的char也是一个字节,而我们汉字字数太多不可能用一个字节就全部包含进去。

为了解决这个问题,C语言推出了一种新的类型,叫做wchar_t。w 是 wide 的首字母,t 是 type 的首字符,wchar_t 的意思就是宽字符类型。wchar_t 的长度由编译器决定:

在微软编译器下,它的长度是 2,等价于 unsigned short;

在GCC、LLVM/Clang 下,它的长度是 4,等价于 unsigned int。

wchar_t 类型位于 头文件中,它使得代码在具有良好移植性的同时,也节省了不少内存。

下面用例子来告诉你们如何使用

#include

#include

int main(){

wchar_t a = L'A'; //英文字符(基本拉丁字符)

wchar_t b = L'9'; //英文数字(阿拉伯数字)

wchar_t c = L'中'; //中文汉字

wchar_t d = L'国'; //中文汉字

wchar_t e = L'。'; //中文标点

wchar_t f = L'ヅ'; //日文片假名

wchar_t g = L'♥'; //特殊符号

wchar_t h = L'༄'; //藏文

//将本地环境设置为简体中文

setlocale(LC_ALL, "zh_CN");

//使用专门的 putwchar 输出宽字符

putwchar(a); putwchar(b); putwchar(c); putwchar(d);

putwchar(e); putwchar(f); putwchar(g); putwchar(h);

putwchar(L'\n'); //只能使用宽字符

//使用通用的 wprintf 输出宽字符

wprintf(

L"Wide chars: %lc %lc %lc %lc %lc %lc %lc %lc\n", //必须使用宽字符串

a, b, c, d, e, f, g, h

);

return 0;

}

这里对于新人来说可能比较难懂,所以试着了解一下就好。下面有更加方便的玩法,可以了解一下。使用字符串或者数组来进行存储和处理,

char str1[] = "神奇墨离";

char *str2 = "神奇毛毛";

想不到吧,现在是不是又有些有趣的想法?那么快去自己实践吧,敲代码去吧。再那之前先,收录,收藏,转发,评论,关注。

你可能感兴趣的:(c语言怎么储存字母)