/*Problem Description
统计给定文本文件中汉字的个数。
Input
输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。
Output
对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。
[Hint:]从汉字机内码的特点考虑~
Sample Input
2
WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!
马上就要期末考试了Are you ready?
Sample Output
14
9*/
# include<cstdio>
# include<cmath>
# include<cstring>
int n;
char a[1001];
int main()
{
scanf("%d",&n);
getchar();
while(n--)
{
int cnt = 0;
gets(a);
int k = strlen(a);
for(int i=0;i<k;i++)
{
if(a[i]<0) //汉字机内码的每个字节表示的十进制数都是负数
{
cnt++;
}
}
printf("%d\n",cnt/2); // 每个中文占两个字节
}
return 0;
}
本文介绍了一种通过判断字符编码来统计文本文件中汉字数量的方法。利用汉字机内码特性,即每个汉字由两个负数字节表示,程序读取输入文件,逐个检查字符,若字符的ASCII值小于0,则计数器增加,最终输出每段文本的汉字数量。
1732

被折叠的 条评论
为什么被折叠?



