指针数组问题
#include <stdio.h>#define MAX 1024
int main()
{
char str;
char *target = str;
char ch;
int length = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);
while (1)
{
ch = *target++;
if (ch == '\0')
{
break;
}
if ((int)ch < 0)
{
target += 2;
}
length++;
}
printf("您总共输入了 %d 个字符!\n", length - 1);
return 0;
}
为什么 中文字符占四个字节,检测到中文字符只向后移2个字节而不是4个字节?
中文啥时候占4个字节了 wp231957 发表于 2021-4-19 22:22
中文啥时候占4个字节了
是占四个字节哦
wp231957 发表于 2021-4-19 22:22
中文啥时候占4个字节了
每个中文字符在我们的系统中是占用 4 个字节的存储空间,这个不是说中文占四个字节的意思吗 雨如洁 发表于 2021-4-20 13:54
每个中文字符在我们的系统中是占用 4 个字节的存储空间,这个不是说中文占四个字节的意思吗
$ cat main.c
#include <stdio.h>
int main(void) {
printf("%lu\n", sizeof("你好"));
return 0;
}
$ gcc-debug -o main main.c
$ ./main
7
$
"你好" 是两个中文字符,这个程序输出的是7
那么 7/2 = 3.5
也就是说一个中文字符是3.5个字节?
那么一个中文字符是几个字节?
提示:字符串以 '\0' 结尾
每个中文字符应该是2字节吧,你查查编码方式,其实2字节就可搞定所有汉字
页:
[1]