P.S:(附 OJ 原题)点击打开链接
统计给定文本文件中汉字的个数:
注释:
汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。
计算机中,补码第一位是符号位, 1 表示为 负数,
所以 汉字机内码的每个字节表示的十进制数都是负数。
统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案:
所以 汉字机内码的每个字节表示的十进制数都是负数。
统计输入字符串含有几个汉字,只只需求出字符串中小于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;
}