航电oj:统计字符串中汉字的个数
2026/9/14 20:57:18 网站建设 项目流程

这个题目本身不难,但是涉及到了好多我不太会的知识点。

getchar:在本题中他起到了一个消除换行符的作用。因为在输入n的时候,假如输入为2,按完回车之后,实际输入到缓冲区的内容是2\n,如果不处理这个\n,后续的fgets会直接读取到这个残留的\n。

但是getchar的用法不止于此,等下次碰到再补充吧。

fgets:是一个安全输入函数,专门读取一行文本。

用法:fgets(s,sizeof(s),stdin)

fgets(数组名,数组长度,输入源)其中输入源可以直接写成stdin

汉字机内码的特点:

1.汉字在计算机中占两个字节,数字和英文字母只占一个字节

2.每个字节的最高位都是1,又因为最高位是1的补码都是负数,所以可以判断是否小于零来找。

#include<iostream> using namespace std; int main() { char s[5000]; int n; cin >> n; getchar();//撤销换行符 while (n--) { fgets(s, sizeof(s), stdin); int length = strlen(s); int count = 0; for (int i = 0; i <length; i++) { if (s[i] < 0) { count++; } } cout << count / 2 << endl; } return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询