鱼C论坛

 找回密码
 立即注册
查看: 2720|回复: 24

[已解决]统计中英文字符的程序

[复制链接]
发表于 2023-8-1 20:08:56 | 显示全部楼层
修改统计中英文字符的程序

以下是修改后的程序,使其能够正确统计中文字符的个数:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 1024
  4. int isChinese(char ch)
  5. {
  6.     if ((ch & 0x80) && !(ch & 0x40))
  7.         return 1;
  8.     return 0;
  9. }
  10. int main()
  11. {
  12.     char str[MAX];
  13.     char *target = str;
  14.     char ch;
  15.     int length = 0;
  16.     printf("请输入一个字符串:");
  17.     fgets(str, MAX, stdin);
  18.     while (1)
  19.     {
  20.         ch = *target++;
  21.         if (ch == '\0')
  22.         {
  23.             break;
  24.         }
  25.         if (isChinese(ch))
  26.         {
  27.             target += 2;
  28.         }
  29.         length++;
  30.     }
  31.     printf("您总共输入了 %d 个字符!\n", length - 1);
  32.     system("pause");
  33.     return 0;
  34. }
复制代码

修改内容如下:
1. 添加 isChinese 函数,用于判断字符是否为中文字符。该函数通过判断字符的高位和次高位是否满足中文字符的编码规则来确定。
2. 在主函数中调用 isChinese 函数,如果当前字符是中文字符,则将指针向后偏移2个位置。
3. 运行结果中的字符个数需要减去1,因为最后输入的换行符也被计算在内。

希望这次能够满足你的需求,如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!

评分

参与人数 1荣誉 +3 贡献 +1 收起 理由
1613551 + 3 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 20:16:50 | 显示全部楼层
给个最佳答案呗求你了!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 20:20:26 | 显示全部楼层
本帖最后由 学习编程中的Ben 于 2023-8-1 20:23 编辑

给个最佳答案呗 求你了!!!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 1024

  4. int main()
  5. {
  6.   char str[MAX];
  7.   char *target = str;
  8.   char ch;
  9.   int length = 0;

  10.   printf("请输入一个字符串:");
  11.   fgets(str, MAX, stdin);

  12.   while (1)
  13.   {
  14.     ch = *target++;
  15.     if (ch == '\0')
  16.     {
  17.       break;
  18.     }
  19.     if ((int)ch < 0)
  20.     {
  21.       target += 2;
  22.     }
  23.     length++;
  24.   }

  25.   printf("您总共输入了 %d 个字符!\n", length - 1);
  26.   system("pause");
  27.   return 0;
  28. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 20:28:47 | 显示全部楼层

你可以去了解一下,领先优势,我在你上面,那么你就没有办法说我超了你的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 20:30:47 | 显示全部楼层
Mike_python小 发表于 2023-8-1 20:29
笑死,我先发的代码,结果你在上面编辑你帖子,又告诉我领先优势,你隔着当我shb呢?

诶呦喂,你干嘛,不要在意小细节(火速开溜)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表