1. 程式人生 > >HDU-2030——漢字統計

HDU-2030——漢字統計

漢字統計
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 62459 Accepted Submission(s): 33621

Problem Description
統計給定文字檔案中漢字的個數。

Input
輸入檔案首先包含一個整數n,表示測試例項的個數,然後是n段文字。

Output
對於每一段文字,輸出其中的漢字的個數,每個測試例項的輸出佔一行。

[Hint:]從漢字機內碼的特點考慮~

Sample Input

2
WaHaHa! WaHaHa! 今年過節不說話要說只說普通話WaHaHa! WaHaHa!
馬上就要期末考試了Are you ready?

Sample Output

14
9

問題連結:HDU-2030

問題簡述:統計一個文段中中文的字數,多組輸入輸出。

問題分析:1、一個漢字佔兩個位元組,所以可以統計出漢字所佔位元組後除以二並輸出該值。2、漢字也是用ascii碼錶示的,漢字的ASCII碼第一個位元組的值都小於0,第二個位元組的ASCII碼一般在拓展ASCII碼中,128-255間的ASCII碼稱作擴充套件的ASCII碼,而英文字母的ASCII碼均位於0~127範圍中,可認為在此ASCII碼區間外的字元均為漢字。

程式說明:%*c用來接收多餘的字元‘\n’,暴力掃描。

AC通過程式碼:

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

int main()  
{
	int n,ch=0;
	int i,j;
	char s[1000];
	scanf("%d%*c",&n);
	for(i=0;i<n;i++)
	{
		ch=0;
		gets(s);
		for(j=0;j<strlen(s);j++)
		{
			if(s[j]<0||s[j]>127)
			{
				ch++;
			}
		}
		printf("%d\n",ch/2);
	}
	return 0;
}