看中文字符编码windows一般是gbk两个字节 作为一个汉字,第一个字节必然是0xA0以上的。遇到这种 把两个字节作为一个整体进行翻转。 对于带汉字的,用一个字符串进行翻转比较麻烦最好用另一个字符串进行存储。
void reverse_with_chinese(char *s){ char *p; int len = strlen(s); int i,t; p = (char *)malloc(len+1); p[len]=0; t=len; for(i = 0; s[i]; ) { if(s[i]>0xA0)//汉字 { p[t-1] = s[i]; p[t]=a[i+1]; t-=2; i+=2; } else { p[t--]=s[i++]; } } strcpy(s,p); free(p);}
©本文版权归作者所有,任何形式转载请联系我们:xiehuiyue@offercoming.com。