·一周点击排行
·热点推荐
您的位置:首页 >> 计算机 » 等级考试 » 一个实现字符串反转的函数 >> 正文

一个实现字符串反转的函数

发布时间:2008-2-18 9:41:00 浏览次数: 461

提供两种方法:

  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;                   
  }


讨论此主题请进>>: 一个实现字符串反转的函数