C语言—指针—汉字倒置

解决思路:由于汉字根据编码不同而所占据的字节也不同,一般来说:GBK\GB2312编码是2个字节,但是unicode\utf-8编码是3个字节。

代码:
#include
#include
int main()
{
    char str[]="世界你好";
    short *str1=&str;  //指向str[0]
 short *str2=&str[strlen(str)-2];//指向str[8-2],由于这里用的是short占两个字节
   
 while(str1str2时,字符数组已经逆置完了。
    short temp=*str1;   //前面和后面字符两两互换。
    *str1=*str2;
    *str2=temp;
    str1++;
    str2--;
 }
 printf("%s",str);
    return 0;
}

你可能感兴趣的:(c语言)