hdu 2030 统计汉字个数

 

汉字统计

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 17280    Accepted Submission(s): 9508


Problem Description

 

统计给定文本文件中汉字的个数。

 

 


Input

 

输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。

 

 


Output

 

对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。

[Hint:]从汉字机内码的特点考虑~

 

 


Sample Input

 

2 WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa! 马上就要期末考试了Are you ready?

 

 


Sample Output

 

14 9
 

一个汉字在字符串中是以两个负的字符形式存储,所以本题也可以把字符串中负字符的个数找出来,再除以2就OK了。

汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。
计算机中, 补码第一位是符号位, 1 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数

 
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 
 6 int main()
 7 {
 8           int t;
 9           cin>>t;
10           string a;
11           cin.get();
12           while(t--)
13           {
14                     getline(cin,a);
15                     int count = 0;
16                     for(int i = 0;a[i]!='';i++)
17                     {
18                               if(a[i]<0 || a[i]>127)
19                                         count++;
20                     }
21                     cout<<count/2<<endl;
22           }
23           return 0;
24 
25 }

 

 
原文地址:https://www.cnblogs.com/qlky/p/4948798.html