zoukankan      html  css  js  c++  java
  • Linux下c语言中指针实现汉字字符串的逆置

      #include<stdio.h>
      int main()
       {
               char str[100] = "你好呀我也好";
              char *str_start = &str[0];
              int j = 0;
              while(str[j])j++;
              char *str_end = &str[j-1];
      
              while(str_start < str_end)
              {
                      char tmp = *str_start;
                      *str_start = *(str_end-2);
                      *(str_end-2) = tmp;
                      //str_start++;
                      //str_end--;
     
                      tmp = *(str_start+1);
                      *(str_start+1) = *(str_end-1);
                     *(str_end-1) = tmp;
     
                      tmp = *(str_start+2);
                     *(str_start+2) = *str_end;
                      *str_end = tmp;
     
                      str_start += 3;
                      str_end -= 3;
              }
     
             printf("%s
    ",str);
              return 0;
      }

    这里有一点需要注意的就是,在逆置的过程中,单个汉字在char数组中的内容排列是不能进行改变的。在windows中单个汉字占2个byte,但是在Linux中单个汉字占3个byte。还有一点需要注意的就是,在这个字符串中不能夹杂着其他的符号或者英文字母,不然就把所有的排列都打乱了。

  • 相关阅读:
    HashMap底层实现原理(JDK1.8)源码分析
    JVM总结
    初识Nosql
    线程池总结
    Linux中常用操作命令
    JAVA—集合框架
    TeKtronix TDS210数字示波器使用简介
    硬盘的物理结构
    Unicode 与 UTF
    I2C串行总线
  • 原文地址:https://www.cnblogs.com/littleswan/p/12154870.html
Copyright © 2011-2022 走看看