看到同事使用 & 0x80 判断一个字符是中文还是英文的操作后,特地查了一下资料并求教了一下。
链接原址:https://www.cnblogs.com/hardsoftware/p/6209051.html
代码亲测:
#include <stdio.h>
#include <string.h>
int main(int argc,char** argv)
{
if(argc != 2){
printf("./xxx str");
return 0;
}
char *p = argv[1];
int len = strlen(p);
int i = 0;
for(i = 0;i < len;i++){
if(*(p+i) & 0x80){
printf("chinese %x\n",*(p+i));
}else{
printf("english %x\n",*(p+i));
}
}
return 0;
}
[C@root]./char aaa中国xxx我睡觉哦
english 61
english 61
english 61
chinese ffffffe4
chinese ffffffb8
chinese ffffffad
chinese ffffffe5
chinese ffffff9b
chinese ffffffbd
english 78
english 78
english 78
chinese ffffffe6
chinese ffffff88
chinese ffffff91
chinese ffffffe7
chinese ffffff9d
chinese ffffffa1
chinese ffffffe8
chinese ffffffa7
chinese ffffff89
chinese ffffffe5
chinese ffffff93
chinese ffffffa6