漢字的機內碼在計算機中佔用兩個字節,每個字節的最高位爲1。
而計算機中每個字節的最高位表示符號位:1爲負,0爲正,
所以將漢字的每個字節單獨表示成十進制數字的形式時爲負數,
所以只要統計字符串中的負數的數量就行了,漢字的個數爲負數的數量除以2.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[1024];
int n,m,s,i;
scanf("%d",&n);
getchar();
while(n--)
{
gets(a);
m = strlen(a);
for(s=i=0;i<m;i++)
{
if(a[i] < 0)
s++;
}
printf("%d\n",s/2);
}
return 0;
}