编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值。在main函数中输入一行字符串,分别调用两个函数,输出反序后的字符串。

题目要求:

编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值。在main函数中输入一行字符串,分别调用两个函数,输出反序后的字符串。

思路常规思路怎么反转一个字符串呢?对于常规函数和目前已知的思想来说,冒泡排序或者是不二之选了,所以这里想提一提一种新思路:双指针

双指针

通过定义两个指针p,q,一个指向数组的头部,一个指向数组的尾部,在循环之中不断去交换数组头部和尾部的内容,进行一次交换之后p指针向后进一,q指针向前减一。直到p,q指针相同或者p>q。

而对于递归来说要怎么处理呢?递归的思想一直是个难点,但在这题来说算是比较简单。为了得到反转的字符串,可以让数组尾部赋给一个新数组的头部,然后不断去递归这个操作即可解决。

这里说一下,是不可以用strcpy来拷贝自定义数组的,因为strcpy的函数原型只能是一个常量而不能是变量。strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc);

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 20
/*编写一个C程序,实现以下功能:
编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值。
在main函数中输入一行字符串,分别调用两个函数,输出反序后的字符串。
*/
void funcRecursion(char* str, int n) {int i = 0;i++;int strTmp[MAX];if (n == 1)return printf("%s",str);else {strTmp[i] = str[n];return funcRecursion(str, n - 1);}
}
void func(char* str, int n) {int p, q;p = 0, q = n;while (p <= q) {char tmp = str[p];str[p] = str[q];str[q] = tmp;p++; q--;}printf("%s", str);
}
int main() {char str[MAX];gets(str);strlen(str);func(str, strlen(str) - 1);//减一是为了减去‘\0’printf("\n");funcRecursion(str, strlen(str) - 1);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.流程引擎对接的三种方式_02

项目地址&#xff1a;https://gitee.com/lwj/flowable.git分支flowable-base 视频地址&#xff1a;https://www.bilibili.com/video/av79774697/ 业务场景&#xff1a; 实际业务中&#xff0c;我们有三种对接流程的方式 1、自定义流程对接 2、内部业务流程对接 3、外部系统对接…

Dubbo Mesh 在闲鱼生产环境中的落地实践

本文作者至简曾在 2018 QCon 上海站以《Service Mesh 的本质、价值和应用探索》为题做了一次分享&#xff0c;其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源、反哺开源”&#xff0c;也讲到了 Service Mesh 在阿里巴巴的发路径将经历以下三大阶段&#xff1a; 撬动做透价…

github private链接访问_将github配置为图床+PicGo配置

将github配置为图床PicGo配置快乐的红领巾&#xff1a;​zhuanlan.zhihu.com1、建一个git仓库 2、获取授权token 3、配置PicGo 4、picgo快捷键1、建一个git仓库用于存需要上传的图片。这个仓库最好是public的&#xff0c;因为private的仓库&#xff0c;图片链接会带token&#…

编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制

题目要求&#xff1a; 编写一个C程序&#xff0c;实现以下功能&#xff1a; //编写一个函数decTobin(int n)&#xff0c;该函数能将一个十进制数n转换成二进制数&#xff0c;输入13 输出 1101。 //在main函数中输入整数n,调用函数&#xff0c;输出它的二进制数。 二进值怎么来…

RocketMQ 在平安银行的实践和应用

随着互联网金融业务和相关技术的不断发展&#xff0c;传统金融行业为满足业务快速发展需求&#xff0c;正在积极引入各类开源技术&#xff0c;以快速抢占市场。那么&#xff0c;以金融和科技作为双驱动的平安银行在开源技术的引入方面是如何评估&#xff0c;运用到哪些业务场景…

flowable节点的自定义属性扩展_03

文章目录新增一个节点属性新增一个package&#xff1b;把我们新增的这个package添加节点属性中编写angularJS脚本在properties.js 配置模板&#xff1b;编写js控制器配置引用后台配置解析我们的节点属性编写一个自定义的解析器bean的初始化spring定义bean项目地址&#xff1a;h…

终于有人把超融合和边缘计算说清楚了

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 采葑责编 | 阿秃近年来超融合在国内迎来快速增长&#xff0c;根据IDC最新发布的报告&#xff0c;2019上半年中国超融合市场增长率达56.7%&#xff0c;大幅超越去年同期。Gartner发布的最新报告&#xff0c;到2023年我国超融合…

表格存储TableStore全新升级,打造统一的在线数据存储平台!

表格存储TableStore是阿里云自研的面向海量结构化和半结构化数据存储的Serverless NoSQL多模型数据库&#xff0c;被广泛用于社交、物联网、人工智能、元数据和大数据等业务场景。表格存储TableStore采用与Google Bigtable类似的宽表模型&#xff0c;天然的分布式架构&#xff…

编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那

题目要求&#xff1a; 编写一个C程序&#xff0c;实现以下功能&#xff1a; 编写一个函数&#xff0c;该函数能判断一个英文句子str(带空格&#xff08;升级版&#xff09;)中是否含有某个单词w,如“How old are you?”含有“old”。 在main函数中输入一个英文句子&#xff0…

java短信验证码功能发送的验证码如何校验_企业如何选择短信平台才能保障安全和稳定性?...

现如今互联网不断发展&#xff0c;人们对网络的依赖性越来越大&#xff0c; 伴随而来的网络运营安全问题越来越严重&#xff0c;安全是我们企业都担忧的一个大问题&#xff0c;短信平台的安全性再次被企业所重视起来。短信验证码日常生活中经常遇到&#xff0c;比如银行卡的绑定…

达摩院里的女Leader,一面温柔似水一面灿烂如阳

天下网商 贡晓丽 作为全球最成功的女性之一,谢丽尔桑德伯格在《向前一步》一书中深刻地剖析了男女不平等现象的根本原因&#xff0c;她认为&#xff0c;女性之所以没有勇气跻身领导层&#xff0c;不敢放开脚步追求自己的梦想&#xff0c;更多是出于内在的恐惧与不自信。 纵然…

flowable DMN规则引擎几种类型解释_04

文章目录单一命中第一个&#xff08;FIRST&#xff09;唯一&#xff08;UNIQUE&#xff09;优先级&#xff08;PRIORITY&#xff09;任何&#xff08;ANY&#xff09;多重命中输出顺序&#xff08;OUTPUT ORDER&#xff09;规则顺序&#xff08;RULE ORDER&#xff09;采集&…

“我哥毕业1年,做Python挣了50W!”网友:吹得太少...

现状揭秘&#xff1a;Python岗位大厂50K起&#xff1f;程序员&#xff1a;心态崩了&#xff01;屠杀各种榜单&#xff0c;拿下语言排行榜的Python&#xff0c;薪酬真的如同网传开挂了吗&#xff1f;笔者在脉脉上发现了这样的一个信息&#xff1a;但Python真的这么火&#xff1f…

Nvidia GPU如何在Kubernetes 里工作

Nvidia GPU如何在Kubernetes 里工作 本文介绍Nvidia GPU设备如何在Kubernetes中管理调度。 整个工作流程分为以下两个方面&#xff1a; 如何在容器中使用GPUKubernetes 如何调度GPU如何在容器中使用GPU 想要在容器中的应用可以操作GPU&#xff0c; 需要实两个目标 容器中可…

C++多重继承师生类复盘

要求&#xff1a;做一个基类Data&#xff0c;数据成员name&#xff0c;派生类教师teacher和学生student继承Data的name数据成员&#xff0c;此外教师新增薪水sal数据成员&#xff0c;学生新增学号id数据成员&#xff0c;派生类研究生Postgard继承学生,新增系别dn数据成员&#…

mysql的每隔1分钟定时_简单易用,spring boot集成quartz,实现分布式定时任务

什么是quartz&#xff1f;Quartz是一个完全由 Java 编写的开源任务调度框架。我们经常会遇到一些问题&#xff1a;想每个月27号&#xff0c;提醒信用卡还款&#xff1b;想每隔1小时&#xff0c;提醒一下&#xff0c;累了&#xff0c;站起来活动一下&#xff1b;想每个月定时发送…

flowable springboot 集成 flowableDMN_05

文章目录配置POM配置Config通过上述的配置&#xff0c;现在在spring容器中已经存在一些接口bean了项目地址&#xff1a;https://gitee.com/lwj/flowable.git 分支flowable-base视频地址&#xff1a;https://www.bilibili.com/video/av79774697/*DMN集成&#xff1a;这里我们说的…

阿里云安全肖力:从RSA2019看安全技术发展的十个机遇

又一年RSA大会归来。每一年参会&#xff0c;总会有一些不同的感悟&#xff0c;或是发现全球安全行业的新趋势&#xff0c;或是找到志同道合的新伙伴&#xff0c;或是看到很多人也相信我们相信的安全技术新方向。今天在回国的航班上提笔写下我的感悟和判断&#xff0c;希望对安全…

华为组织架调整,CloudAI升至第四大BG,打通全球第一款集成5G模组的4K直播编码器网络通信服务;谷歌宣布与IBM合作……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go goIntel 10nm Tiger Lake晶圆首曝&#xff1a;核心面…

编写C语言代码,实现以下功能:输入平面上两个点P1(x1,y1)和P2(x2,y2)的坐标,以这两个点为左上角和右下角可以确定一个矩形,输出这个矩形的周长。要求平面上点的坐标和矩形都用结构体来表示。

编写C语言代码&#xff0c;实现以下功能&#xff1a; 输入平面上两个点P1(x1,y1)和P2(x2,y2)的坐标&#xff0c;以这两个点为左上角和右下角可以确定一个矩形&#xff0c;输出这个矩形的周长。要求平面上点的坐标和矩形都用结构体来表示。 #define _CRT_SECURE_NO_WARNINGS 1 …