注:此程序其实并没有什么用
想必大家都知道,在C里面,我们的汉字等东西是可以拆分为两个整数的(类似ascii码),那怎样获得每个字的字表码呢?很简单,写一个小小的循环,遍历一次就好了。
于是乎,通过两重的for循环,从-256循环到255,利用printf("%c%c",s[0],s[1]);便简单的获得了整个字表。
但是这样获得的字表还有很多的非汉字字符,通过简单地肉眼找规律,我们很容易发现汉字(不一定是中文,但是都是汉文化圈的文字)在字表中分布于
(first >= -127 && first <= -2) || (first >= 129 && first <= 253)
(seconnd >= -192 && seconnd <= -2) || seconnd >= 64 && seconnd <= 254)
然后我们利用C的文件输入输出函数将此字表写入文件中,便能获得一个汉字字表了,为了方便,直接利用“写字板”程序自带的“查找”功能来查询所需汉字的字表位置。
以下为代码:
但是,当我们进行查找时,却会发现一个问题,那就是同样的字符在字表中通常有4个版本,观察后我们可以发现他们的位置是对称的,每两个对称的第二个数的绝对值相加为256,第一个数也是一样的情况,也就是说,实际上的字表并没有这么多的字符,而是因为符号的原因出现了重复字符。于是我们在代码中减少打印的范围,只保留打印数字为正数的部分,并且改进循环的条件,减少循环的次数。
改进后的代码:
效果:
还有,我们可以发现,汉字在字表中的排列似乎是以拼音顺序来排序,但是却找不出其中的规律,希望能以后能发现其中的规律。