C语言-判断回文字符串(二)

C语言-判断回文字符串(二)7-2 判断回文字符串 (15分)输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。输入样例1:level输出样例1:levelYe…

大家好,又见面了,我是你们的朋友全栈君。

7-2 判断回文字符串 (15 分)

输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No

输入样例1:

level

输出样例1:

level
Yes

输入样例2:

1 + 2 = 2 + 1 =

输出样例2:

1 + 2 = 2 + 1 =
No

这道题刚上一篇博客写的题有点不一样,主要是算法上的不同,需求还是一样,都是判断字符串是不是回文字符串,上次写的博客的那道题是使用数组+指针来判断回文字符串,这道题没给我们限制算法,那么我们就用最原始的方法,直接上数组!!!

先看代码吧

#include<stdio.h>
int main(){
	int i,k,j;
	char line[80];
	
	k = 0;
	
	while((line[k] = getchar()) != '\n'){//读入字符串,以回车符结尾
		k++;//统计输入字符串的长度
	}
	
	i = 0;
	j = k;//保存k值
	
	k = k-1;//k = k-1的意思是,数组的下标最大是k-1
	
	while(i < k){
		if(line[i] != line[k])//字符串比较判断
			break;
		i++;
		k--;
	}
	
	for(int i = 0;i < j;i++){//输出字符串
		printf("%c",line[i]);
	}
	printf("\n");
	
	if(i >= k){打印判断结果
		printf("Yes\n");
	} else{
		printf("No\n");
	}
	
	return 0;
}

这道题的代码就相对比较容易理解一些了。首先是输入,输入以回车符结尾,并统计字符串长度,然后根据字符串长度进行首尾的字符比较。这个代码可能唯一难理解的地方是最后打印判断结果的地方,为什么是i >=k,这个你可以带入一个字符串进行验证一下,再回过头来想想,i是从零开始的,k是从最大下标k-1开始的,如果i<k了,那肯定说明在执行判断的时候因为字符不对影响等而终止了,说以只有当i >=k的时候才能正确判断字符串是不是回文。 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138863.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SkeyePlayer RTSP播放器源码解析系列之H264一帧多NAL写MP4录像花屏问题解决方案

    SkeyePlayer RTSP播放器源码解析系列之H264一帧多NAL写MP4录像花屏问题解决方案接上一篇[SkeyePlayer源码解析系列之录像写MP4]之续篇,我们来讲解一下关于H264编码格式中的一帧多nal(NetworkAbstractLayer,即网络抽象层),关于H264和NAL,这里引用一段话来科普一下:【转】在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元

    2022年10月9日
    2
  • AndroidAutoSize今日头条适配方案[通俗易懂]

    AndroidAutoSize今日头条适配方案[通俗易懂]最近公司没有什么事,闲来无聊,就研究一下今日头条的适配方案,不看不知道,真是一看吓一跳,快速上手而且还简单易懂,推荐一篇文章:http://www.wanandroid.com/blog/show/2343我也是看的这位大佬写的。今日头条适配只是一个基准,它是以宽或者高来进行适配的。今日头条的适配是通过修改Application/Activity等的DisplayMetrics…

    2022年5月3日
    480
  • Cubieboard2折腾手记(一)「建议收藏」

    Cubieboard2折腾手记(一)「建议收藏」Cubieboard折腾手记  前段时间终于是入手了一块Cubieboad2,板子的参数看着挺不错,全志A20的cpu,1G的RAM,4G的nandflash。本来就是想搞个树莓派来玩的,后来看了看,选了这个CubieBoard2,加上其他的一些配件的,参不多是400软妹币,全志的资料在网上找了下,也是不少的,对linux也算比较友好的。  废话不多说了,拿到板子后当然是装上自己最喜爱

    2022年7月22日
    9
  • gdb调试python程序(gdb和seggar)

    一、什么是coredump我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状…

    2022年4月15日
    54
  • PyCharm激活码永久有效PyCharm2018.1.6激活码教程-持续更新,一步到位「建议收藏」

    PyCharm激活码永久有效PyCharm2018.1.6激活码教程-持续更新,一步到位「建议收藏」PyCharm激活码永久有效2018.1.6激活码教程-Windows版永久激活-持续更新,Idea激活码2018.1.6成功激活

    2022年6月19日
    33
  • javascript获取当前时间,按指定格式输出_js获取现在本地时间的代码

    javascript获取当前时间,按指定格式输出_js获取现在本地时间的代码使用js获取当前时间

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号