C/C++プログラミング学習-第10週③漢字統計


タイトルリンク
タイトルの説明
指定したテキストファイル内の漢字の個数を統計します.
Input入力ファイルには、まず、テストインスタンスの個数を表す整数nが含まれ、次にnセグメントテキストが含まれます.
Outputはテキストごとに漢字の数を出力し,テストインスタンスごとの出力が1行を占める.
[Hint:]漢字機内コードの特徴から~
Sample Input
2
WaHaHa! WaHaHa!               WaHaHa! WaHaHa!
         Are you ready?

Sample Output
14
9

構想
1つの漢字の機内コードは2バイトを占め、各バイトの最上位1ビットは1である.一方,計算機では,符号化第1位は符号ビットであり,1は負数を表すので,漢字機内符号のバイト当たりの10進数は負数である.統計入力文字列にはいくつかの漢字が含まれており、文字列の中で0未満の文字がいくつかあるだけで、それを2で割ると答えが得られます.
C++コード:
#include
using namespace std;
char a[100005];
int main()
{
     
	int n;
	while(cin >> n)
	{
     
		int temp = n - 1;
		while(n--)
		{
     
			char c;
			int count = 0, i = 0;
			if(n == temp)
				getchar();
			while(c = getchar())
			{
     
				if(c == '
'
) break; if(c < 0) count++; a[i++] = c; } cout << count / 2 <<endl; } } }