打印本文 打印本文  关闭窗口 关闭窗口  
一个实现字符串反转的函数
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 13:56:45  文章录入:杜斌  责任编辑:杜斌

  提供两种方法:

  1、有中间变量

  2、无中间变量

  #include <stdio.h>
  #include <string.h>

  void reverse_str(char * ch);
  void reverse_str2(char *ch);

  int main(void)
  {
     char c[] = "Can you reverse me?";

     printf("original string c: \n%s\n", c);
     reverse_str(c);
     printf("reversed string after calling reverse_str: \n%s\n", c);
     reverse_str2(c);
     printf("reversed string after calling reverse_str2: \n%s\n", c);
     system("pause");

     return 0;
  }

  void reverse_str(char *ch)  /*使用中间变量*/
  {
     int len;
     int i;
     len = strlen(ch)-1;
     char ctemp;

     for(i = 0; i < len-i; i++)
     {
           ctemp = ch[i];
           ch[i] = ch[len-i];
           ch[len-i] = ctemp;
     }
     ch[len+1] = 0;                   

  }

  void reverse_str2(char *ch)   /*不用中间变量*/
  {
     int len;
     int i;
     len = strlen(ch)-1;
     char ctemp;

     for(i = 0; i < len-i; i++)
     {
           ch[i] = ch[i] ^ ch[len-i];
           ch[len-i] = ch[i] ^ ch[len-i];
           ch[i] = ch[i] ^ ch[len-i];
     }
     ch[len+1] = 0;                   
  }

打印本文 打印本文  关闭窗口 关闭窗口