题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2030
1、如何判断输入的是汉字
汉字在计算机中用两个字节表示 且最高位为1 计算机中字节用补码表示 首位为1则为负数
c++中char类型也是使用一个字节表示 所以直接判断char类型存储的字符大小即可
代码:
#include<iostream>
#include<String>
#include<cstring>
using namespace std;
int main(){
//判断中文的个数 c++中\0表示空字符 作为字符串结束符使用
int n;
char a[10000];
while(cin>>n){
getchar();
while(n--){
int count=0;
cin.getline(a,10000);
for(int i=0;a[i]!='\0';i++){
if(a[i]<0){
count++;
}
}
cout<<count/2<<endl; //汉字两个字节最高位都为1 补码的最高位为1表示负数 c++中char类型占1个字节
}
}
}