使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
2019/7/10 23:26:12
本文主要是介绍使用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语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享