生无涯

吾生也有涯,而知也无涯,以无涯随有涯,乐以忘忧,生亦无涯矣www.cnblogs.com/shengwuya
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

a program a day 4

Posted on 2010-09-30 12:36  生无涯  阅读(124)  评论(0编辑  收藏  举报

/**
字符串就地逆序,递归法、非递归法
**/
#include<stdio.h>
#include<string.h>
//------------------------------------
//以下是递归算法
void reverse(char * str,int len,int i)
{
 char tmp;
 if(i < len)
 {
  tmp = str[i];
  str[i] = str[len-1];
  str[len-1] = tmp;
  reverse(str,len-1,++i);
 }
}
void reverse(char * str)
{
 int len = strlen(str);
 reverse(str,len,0);
}
//-----------------------------------
//以下是非递归算法
//-----------------------------------
void reverse1(char * aString)
{
 char tmp;
 int len = strlen(aString)-1;
 for(int i = 0;i <= len; i++,len--)
 {
  tmp = aString[i]; 
  aString[i] = aString[len];
  aString[len] = tmp;
 }
}

int main()
{
 char str[] ="abcde";
 reverse(str);
 printf("the result is:%s\n",str);
 char str1[] ="123456";
 reverse1(str1);
 printf("the result is:%s\n",str1);
 return 1;
}