关于C语言S1E22 动动手程序的问题
这个C语言课后作业要求统计中英混合字符串的个数,要甄别中文字符,中文字符占四个字节,指针只要往后推两个空间 不应该target+=3吗?大家帮我看看
本帖最后由 jackz007 于 2021-3-3 17:47 编辑
一个汉字占用的字符数取决于编码,也就是操作系统的类型,Windows 采用 GBK 编码,每个汉字占用 2 个字符,Linux 采用 UTF-8 编码,每个汉字占用 3 个字符。
本例的代码基于 Linux 系统,每次循环 target 依例加 1,但是,当判断 ch 为汉字时,又再次加了 2,总共加了 3,正好是一个汉字占用的字符个数。 jackz007 发表于 2021-3-3 17:02
一个汉字占用的字符数取决于编码,也就是操作系统的类型,Windows 采用 GBK 编码,每个汉字占用 2...
我看小甲鱼的答案是说中文字符占4个 窝窝头传奇 发表于 2021-3-3 18:39
我看小甲鱼的答案是说中文字符占4个
小甲鱼说的是错的哈哈哈
窝窝头传奇 发表于 2021-3-3 18:39
我看小甲鱼的答案是说中文字符占4个
别冤枉别人,唯一的可能是你自己记错了。 jackz007 发表于 2021-3-3 20:03
别冤枉别人,唯一的可能是你自己记错了。
他的编译器出来显示是4个 他自己的话也说是4个 我代码出来是三个字符
窝窝头传奇 发表于 2021-3-4 14:04
他的编译器出来显示是4个 他自己的话也说是4个 我代码出来是三个字符
因为最后一个是结束符,所以在你这道题中的最后length-1就是用来计算去除‘\0’之后的字符数 本帖最后由 jhq999 于 2021-9-9 21:13 编辑
UTF-32占4个字节
页:
[1]