C语言写一个函数判断字符串是不是中文截断的如果是中文截断往前取一个完整的中文
字符,返回处理后的字符串。
#include <stdio.h>
#include <string.h>
int isChinese(char c){
return (c & 0x80) && !(c & 0x7F);
}
char* fixChinese(char* str){
int len = strlen(str);
if(isChinese(str[len-1])){
str[len-1] = '\0';
len--;
}
while(len > 0 && isChinese(str[len-1])){
str[len-1] = '\0';
len--;
}
if(len > 0 && isChinese(str[len-1])){
str[len-1] = '\0';
len--;
}
return str;
}
int main(){
char str1[] = "你好,世界!";
char str2[] = "你好,世";
char str3[] = "Hello, world!";
printf("%s\n", fixChinese(str1));
printf("%s\n", fixChinese(str2));
printf("%s\n", fixChinese(str3));
return 0;
}
输出结果:
你好,世界
你好
Hello, world!
原文地址: https://www.cveoy.top/t/topic/bibP 著作权归作者所有。请勿转载和采集!