英文字母和中文汉字所占字节数

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C++ 编写的程序,可以实现统计文章中英文字母、数字、汉字中文句号的个数,以及计算总行数(包括空行): ```cpp #include <iostream> #include <fstream> #include <string> using namespace std; int main() { int total_lines = 0; // 总行数 int letters = 0; // 英文字母个数 int digits = 0; // 数字个数 int chinese_chars = 0; // 汉字个数 int periods = 0; // 中文句号个数 ifstream input("article.txt"); // 打开文件 string line; while (getline(input, line)) // 逐行读取 { ++total_lines; // 总行数加一 if (line.empty()) // 空行 { continue; } for (int i = 0; i < line.length(); ++i) { if (isalpha(line[i])) // 英文字母 { ++letters; } else if (isdigit(line[i])) // 数字 { ++digits; } else if (line[i] == '。') // 中文句号 { ++periods; } else if ((unsigned char)line[i] >= 0x80) // 汉字中文标点符号等 { ++chinese_chars; ++i; // 跳过下一个字节,因为汉字中文标点符号等都2个字节 } } } input.close(); // 关闭文件 // 输出结果 cout << "总行数:" << total_lines << endl; cout << "英文字母个数:" << letters << endl; cout << "数字个数:" << digits << endl; cout << "汉字个数:" << chinese_chars << endl; cout << "中文句号个数:" << periods << endl; return 0; } ``` 上述程序中,通过 `ifstream` 类打开文件,然后使用 `getline` 逐行读取文件内容,累加总行数,并循环遍历每一行的字符。在字符循环中,通过 `isalpha` 和 `isdigit` 函数判断字符是否为英文字母和数字,通过比较字符是否为中文句号,判断中文句号的个数,通过比较字符的 ASCII 码值是否大于等于 0x80,判断字符是否为汉字中文标点符号等。由于汉字中文标点符号等都两个字节,因此在判断汉字个数时需要跳过下一个字节。 最后,程序输出统计结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值