汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 计算机中, 补码第一位是符号位, 1 表示为 负数,所以 汉字机内码的每个字节表示的十进制数都是负数,统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案。(这是看了别人的博客才知道的)
#include <iostream>
using namespace std;
void main()
{
char ch[1000];
int i=0;
cin>>i;
getchar();
while(i--)
{
gets(ch);
int t=strlen(ch);
for(int n=0,a=0;n<t;n++)
{
if((int)(ch[n])<0) a++;
}
cout<<a/2<<endl;
}
}