hdu2030汉字统计

  • ASCII码占一个字节,汉字不是用ASCII码编码的,一般有GBK2312和UTF-8等编码方式,他们都占2个字节。

 
  • 每个键盘上的键值及字符 在ASC码中都有一个对应,而每个汉字由2个ASC码对应。首字节高位是1的,可能是汉字编码,或者反过来说,汉字编码两个字节的高位为1。ASCII高位为0。

  • 汉字编码范围(GB2312),第一字节 第二字节,0xB0-0xF7(176-247) 0xA0-0xFE(160-254)

  • ascll码范围 0-127,可以看出对于汉字,无论第一个字节还是第二个字节,第一位都是1而ascll码的第一位是0。

  • /*国标码的机内码为二字节长的代码,它是在相应国标码的每个字节最高位上加“1”,即
    汉字机内码=汉字国标码+8080H
    */
    
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    using namespace std;
    int main()
    {
        string str;
        int n,sum;
        while(cin>>n)
        {
            cin.ignore();
            while(n--)
            {
                getline(cin,str);
                sum = 0;
                for(int i = 0;str[i]!='\0';i++)
                {
                    if(str[i]<0)
                    sum++;
                }
                cout<<sum/2<<endl;
            }
        }
        return 0;
    }

     

posted @ 2018-10-03 20:50  星海violet  阅读(260)  评论(0编辑  收藏  举报