C语言 22课strlen函数进阶
#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; //这里小甲鱼说一个中文占4个字节,前面target++加了1,这里为什么不是+3呢
}
length++;
}
printf("您总共输入了 %d 个字符!\n", length - 1);
return 0;
}
一个中文占四个字节?你会不会是听错了
utf-8编码中文占3个字节,gbk编码中文占2个字节 #include <stdio.h>
#include <string.h>
int main()
{
char a[] = "小";
char b[] = "小甲";
char c[] = "小甲魚";
printf("a: %lu\n", strlen(a));
printf("b: %lu\n", strlen(b));
printf("c: %lu\n", strlen(c));
return 0;
}a: 3
b: 6
c: 9 isdkz 发表于 2022-2-13 21:40
一个中文占四个字节?你会不会是听错了
utf-8编码中文占3个字节,gbk编码中文占2个字节
上面写的 傻眼貓咪 发表于 2022-2-13 22:00
知道怎么回事了感谢
页:
[1]