使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法

 更新时间:2013年05月28日 16:29:48   作者:  
本篇文章是对使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)进行了详细的分析介绍,需要的朋友参考下

代码如下所示:

复制代码 代码如下:

// 递归实现字符串反转  
char *reverse(char *str)  
{  
 if( !str )  
 {  
  return NULL;
 }  

    int len = strlen(str);  
    if( len > 1 )  
    {  
        char ctemp =str[0];  
        str[0] = str[len-1];     
        str[len-1] = '/0';// 最后一个字符在下次递归时不再处理  
        reverse(str+1); // 递归调用  
        str[len-1] = ctemp;  
    }  

    return str;  
}

// 非递归实现字符串反转
char *reverse(char *str)  
{  
 if( !str )  
 {  
  return NULL;
 }  

    int len = strlen(str);  
    char temp;  
    for( int i = 0; i < len / 2; i++ )  
    {  
        // 交换前后两个相应位置的字符  
        temp = *(str + i);  
        *(str + i) = *(str + len - 1 - i);  
        *(str + len - 1 - i) = temp;  
    }  

    return str;  
}
int _tmain(int argc, _TCHAR* argv[])
{
 char src[] = {"abcdef"};
 char *pdest = reverse(src);
 getchar();
 return 0;
}

相关文章

  • C++中栈结构建立与操作详细解析

    C++中栈结构建立与操作详细解析

    我们可以把栈理解成一个大仓库,放在仓库门口(栈顶)的货物会优先被取出,然后再取出里面的货物。而从数据的逻辑结构来看,栈结构起始就是一种线性结构
    2013-10-10
  • C++ ofstream与ifstream详细用法

    C++ ofstream与ifstream详细用法

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间
    2013-07-07
  • C语言动态内存的分配实例详解

    C语言动态内存的分配实例详解

    动态内存管理同时还具有一个优点,当程序在具有更多内存的系统上需要处理更多数据时,不需要重写程序,下面这篇文章主要给大家介绍了关于C语言动态内存分配的相关资料,需要的朋友可以参考下
    2022-06-06
  • C++图文并茂分析讲解内存管理

    C++图文并茂分析讲解内存管理

    本章主要介绍C语言与C++的内存管理,以C++的内存分布作为引入,介绍C++不同于C语言的内存管理方式(new delete对比 malloc free),感兴趣的朋友来看看吧
    2022-09-09
  • 判断本机office安装版本的方法分享

    判断本机office安装版本的方法分享

    这篇文章主要介绍了判断本机office安装版本的方法分享,需要的朋友可以参考下
    2014-01-01
  • C++如何实现简易扫雷游戏

    C++如何实现简易扫雷游戏

    这篇文章主要为大家详细介绍了C++如何实现简易扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C++利用easyx图形库实现创意天天酷跑小游戏

    C++利用easyx图形库实现创意天天酷跑小游戏

    这篇文章主要为大家详细介绍了C++如何利用easyx图形库实现创意小游戏——天天酷跑,文中的示例代码讲解详细,快跟随小编一起了解一下吧
    2023-03-03
  • C++实现LeetCode(45.跳跃游戏之二)

    C++实现LeetCode(45.跳跃游戏之二)

    这篇文章主要介绍了C++实现LeetCode(45.跳跃游戏之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++多重继承与虚继承分析

    C++多重继承与虚继承分析

    这篇文章主要介绍了C++多重继承与虚继承分析,是面向对象程序设计非常重要的知识点,需要的朋友可以参考下
    2014-08-08
  • C语言数据结构树之后序遍历的实现

    C语言数据结构树之后序遍历的实现

    这篇文章主要介绍了C语言数据结构之后序遍历的实现的相关资料,这里提供一个简单实例来实现后续遍历,对于数据结构树的学习很有帮助,需要的朋友可以参考下
    2017-07-07

最新评论