标签:line ret pac ignore int 有一个 gb2312 using 编码方式
ASCII码占一个字节,汉字不是用ASCII码编码的,一般有GBK2312和UTF-8等编码方式,他们都占2个字节。
每个键盘上的键值及字符 在ASC码中都有一个对应,而每个汉字由2个ASC码对应。首字节高位是1的,可能是汉字编码,或者反过来说,汉字编码两个字节的高位为1。ASCII高位为0。
汉字编码范围(GB2312),第一字节 第二字节,0xB0-0xF7(176-247) 0xA0-0xFE(160-254)
ascll码范围 0-127,可以看出对于汉字,无论第一个字节还是第二个字节,第一位都是1而ascll码的第一位是0。
/*国标码的机内码为二字节长的代码,它是在相应国标码的每个字节最高位上加“1”,即 汉字机内码=汉字国标码+8080H */ #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int main() { string str; int n,sum; while(cin>>n) { cin.ignore(); while(n--) { getline(cin,str); sum = 0; for(int i = 0;str[i]!=‘\0‘;i++) { if(str[i]<0) sum++; } cout<<sum/2<<endl; } } return 0; }
标签:line ret pac ignore int 有一个 gb2312 using 编码方式
原文地址:https://www.cnblogs.com/lyqf/p/9740844.html