|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 SaltY7967 于 2022-7-16 12:56 编辑
#include <stdio.h>
#define MAX 1024
int main()
{
char str[MAX];
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++;
}
//round1: ch = *target, *target = *(target + 3); 那么round2开始时: ch= *target +3 但是一个汉字是占四个字节啊,那么这个ch不是应该在上一个汉字的最后一个字节上吗。这个程序跑起来为什么没问题呢?
printf("您总共输入了 %d 个字符!\n", length - 1);
return 0;
}
本帖最后由 jackz007 于 2022-7-16 12:31 编辑
每个汉字占用的字节数取决于编码,linux 操作系统采用 utf-8 编码,每个汉字占用3个字节,中文简体版的 windows 采用 gb2312 编码,每个汉字占用 2 个字节。
|
|