zoukankan      html  css  js  c++  java
  • HDOJ 2030

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

    汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为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'结尾
    */   
    
  • 相关阅读:
    HDU 2509 nim博弈
    HDU 1907 nim博弈变形
    HDU 1568 double 快速幂
    HDU 5950 矩阵快速幂
    HDU 1796 容斥原理
    Linux raid信息 查看
    Linux Ubuntu 内核升级
    Ubuntu 14.04 为 root 帐号开启 SSH 登录
    Google 分布式关系型数据库 F1
    分布式事务实现-Spanner
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2560109.html
Copyright © 2011-2022 走看看