HDOJ 2030

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

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

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

 #include<stdio.h>
#include<string.h>
int main()
{
	int i,j,T;int cnt;
	char str[4096];
	scanf("%d%*c",&T);
	while(T--)
	{
		memset(str,0,sizeof(str));
		cnt=0;i=0;
		/*可能包含空格*/ 
		//scanf("%[^\n]",str);,可能与编译器有关,用它就WA啦 
		gets(str);
	//	puts(str);
		/*
		int len=strlen(str);
		printf("%d\n",len); 
		输入“我爱你”,输出6,所以最后需要除2
		*/ 
		/*
		不是'\n' ,且根据while循环性质,自增需要写在循环内部
		*/ 
		while(str[i]!='\0')
		{
			if(str[i]<0)
				cnt++;
				i++;
		}
		printf("%d\n",cnt>>1);
	}
	return 0;
}


/*
注意:\n是换行
\0是终结字符,例如一个字符串的终结。 所以用gets读入字符串时
用 while(str[i]!='\0')结尾 ,而用ch=getchar()时,要用'\n'结尾
*/   

 

目录
相关文章
HDOJ 1214 圆桌会议
HDOJ 1214 圆桌会议
96 0
HDOJ 2056 Rectangles
HDOJ 2056 Rectangles
130 0
HDOJ 1323 Perfection(简单题)
HDOJ 1323 Perfection(简单题)
120 0
HDOJ 2034 人见人爱A-B
HDOJ 2034 人见人爱A-B
126 0
HDOJ 2019 数列有序!
HDOJ 2019 数列有序!
122 0
|
Java 机器学习/深度学习