HDOJ 2030 汉字统计

来源:互联网 发布:linux tmp 目录权限 编辑:程序博客网 时间:2024/06/06 08:39

P.S:(附 OJ 原题)点击打开链接

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

注释:

        汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。
计算机中,补码第一位是符号位, 1 表示为 负数, 
所以 汉字机内码的每个字节表示的十进制数都是负数。
统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案:

计算机中,补码第一位是符号位, 1 表示为 负数, 
所以 汉字机内码的每个字节表示的十进制数都是负数。
统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案:

源代码:

#include <stdio.h>
#include<string.h>

#define N 100


main()
{
int num,n;
int t;
char str[N];
for (scanf ("%d%*c",&num); num > 0; num--){ 
// %*c 忽略此字符的输入, 但是有些的编译器是不支持的. 
t=0;
n=0;
memset(str,0,sizeof(str));
        /*可能包含空格*/
        //scanf("%[^\n]",str);,可能与编译器有关,用它就WA啦 
        gets(str);
        while(str[n]!='\0'){


            if(str[n]<0)
                t++;
                n++;
        }
        printf("%d\n",t/2);
    }
return 0;
}