XDOJ1215 - 数汉字

Description

统计给定文本文件中汉字的个数。(中文符号也算作汉字,数据保证除了中文,英文没有其他语言)

Input
输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。
Output
对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。
Sample Input
2
WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!
马上就要期末考试了Are you ready?
Sample Output
14
9
Hint

从汉字机内码的特点考虑~

解题思路:

Description

汉字是两个字节,且最高位是1。知道这个,后面的就比较简单了

#include<iostream>
#include<string>
using namespace std;

int cacHan(string str)
{
    int len = str.length();
    int sum = 0;
    for(int i=0;i<len;++i)
    {
        if(str[i]&128)
        {
            ++i;
            ++sum;
        }
    }
    return sum;
}
int main()
{
    int caseN;
    cin>>caseN;
    string str;
    getline(cin,str);
    for(int m=0;m<caseN;++m)
    {
        getline(cin,str);
        cout<<cacHan(str)<<endl;
    }
    return 0;
}



你可能感兴趣的:(XDOJ1215 - 数汉字)