前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CPP】简单的小循环写出C的字表

【CPP】简单的小循环写出C的字表

作者头像
ZifengHuang
发布2020-07-28 17:08:48
4360
发布2020-07-28 17:08:48
举报
文章被收录于专栏:未竟东方白未竟东方白

注:此程序其实并没有什么用

想必大家都知道,在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,第一个数也是一样的情况,也就是说,实际上的字表并没有这么多的字符,而是因为符号的原因出现了重复字符。于是我们在代码中减少打印的范围,只保留打印数字为正数的部分,并且改进循环的条件,减少循环的次数。

改进后的代码:

效果:

还有,我们可以发现,汉字在字表中的排列似乎是以拼音顺序来排序,但是却找不出其中的规律,希望能以后能发现其中的规律。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未竟东方白 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档