怎么判断一段汉字是回文字符串。例如“上海自来水来自海上”

怎么判断一段汉字是回文字符串。例如“上海自来水来自海上”是回文字符串。

#include <stdio.h>
#include <string.h>
int main()
{
      char ch[] = "上海自来水来自海上";
      int n = strlen(ch);
      if(n%2==0)
      {
          printf("不是中文回文串\n");
          return 0;
      }
      for(int i=0;i<n/4;i+=2)
      {
            if(ch[i] != ch[n-i-2]) ||(ch[i+1] != ch[n-i-1]))
            {
                 printf("不是中文回文串\n");
                 return 0;
            }
      }
       printf("是中文回文串\n");
       return 0;
}

只需要两个字节两个字节进行比较就可以了