原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45534345
汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。
计算机中, 补码第一位是符号位, 1 表示为 负数,所以 汉字机内码的每个字节表示的十进制数都是负数统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案杭电的2030这题就是根据这个做,我的AC代码如下:
#include <iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main(void)
{
int n,lenght,num=0;
string input_str;
cin>>n;
getchar();
for(int i=0; i<n; i++)
{
//因为字符串中有空格,所以用getline
getline(cin,input_str);
lenght=input_str.size();
for(int j=0; j<lenght; j++)
{
if(input_str[j]<0)
{
++num;
++j;
}
}
cout<<num<<endl;
num=0;
}
return 0;
}