七色の海 发表于 2022-10-17 16:32:14

C语言-S1E22课后作业 汉字占位问题

S1E22 指针和数组 动动手第0题进阶 需要读取汉字的长度进行运算问题

小甲鱼的答案读出来一个汉字占4个字符,那为什么指针是后移动两位而不是四位呢?



萌新发问 问题可能比较傻hh 请大佬们多多包涵。

jackz007 发表于 2022-10-17 16:46:32

本帖最后由 jackz007 于 2022-10-17 16:51 编辑

       Linux 系统采用 "UTF-8" 编码,每个西文字符占用一个字节,汉字占用 3 个字节,在字符计数的时候,先统一按西文字符统计,每个字符按 1 个字节步进指针,当发现是中文字符(字符值是负值)时,再补充步进 2 个字节,这样,就实现了西文字符按 1 个字节,中文字符字符按 3 个字节统计的效果。
页: [1]
查看完整版本: C语言-S1E22课后作业 汉字占位问题