|
发表于 2023-8-1 20:08:56
|
显示全部楼层
修改统计中英文字符的程序
以下是修改后的程序,使其能够正确统计中文字符的个数:
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 1024
- int isChinese(char ch)
- {
- if ((ch & 0x80) && !(ch & 0x40))
- return 1;
- return 0;
- }
- 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 (isChinese(ch))
- {
- target += 2;
- }
- length++;
- }
- printf("您总共输入了 %d 个字符!\n", length - 1);
- system("pause");
- return 0;
- }
复制代码
修改内容如下:
1. 添加 isChinese 函数,用于判断字符是否为中文字符。该函数通过判断字符的高位和次高位是否满足中文字符的编码规则来确定。
2. 在主函数中调用 isChinese 函数,如果当前字符是中文字符,则将指针向后偏移2个位置。
3. 运行结果中的字符个数需要减去1,因为最后输入的换行符也被计算在内。
希望这次能够满足你的需求,如果还有其他问题,请随时提问。
如果回答对你有帮助,请给我一个最佳答案!  
|
评分
-
查看全部评分
|