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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通读音_Android API

    通读音_Android API所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成。###cheerio为服务器特别定制的,快速、灵活、实施的jQuery核心实现.###Introduction将HTML告诉你的服务器varcheerio=require(‘cheerio’),$

    2025年6月21日
    0
  • 声明方法java实际开发中泛型使用需要注意的一些问题

    声明方法java实际开发中泛型使用需要注意的一些问题

    2021年8月23日
    65
  • 2019最新Android面试题「建议收藏」

    2019最新Android面试题「建议收藏」金三银四到来了,找工作的好时候到了,小伙伴们是不是都在忙着找工作呢,小弟前一阵也是忙着在找工作,面试了好多公司,所幸的是进到了自己心仪的公司,也是很幸运的。下面我将自己亲身实战的面试题及收到的面试题总结并分享答案出来。欢迎各位大哥指导、指点。下面这些只是Android方面的知识,如果有需要Java方面的面试题的话,可以在下面留言。1.Activity生命周期(这个是必问的)onCrea…

    2022年5月11日
    41
  • Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释

    Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释mytextStyle={color:&quot;#333&quot;,//文字颜色fontStyle:&quot;normal&quot;,//italic斜体oblique倾斜fontWeight:&quot;normal&quot;,//文字粗细boldbolderlighter100|200|300|400…fontFamily:&quot;sans-serif&a

    2022年7月27日
    1
  • query.php?sl=,stripslashes_deep().?php stripslashes?php stripslashes和addsl

    query.php?sl=,stripslashes_deep().?php stripslashes?php stripslashes和addsl你是否正在寻找关于stripslashes的内容?让我把最简洁的东西奉献给你:phpstripslashes和addslashes的区别作者:字体:[]类型:转载时间:2014-02-03这篇文章主要介绍了phpstripslashes和addslashes的区别,特分享下方便需要的朋友。我们在向mysql写入数据时,比如:复制代码代码如下:mysql_query(“update…

    2022年10月9日
    0
  • Android应用开发揭秘-获取电话联系人及号码

    Android应用开发揭秘-获取电话联系人及号码}//以下为官网API注解ContactsContract.CommonDataKinds.Phone.TYPE联系人电话的类型,对应如下:TYPE_MOBILE:手机号码TYPE_HOME:住宅电话TYPE_WORK:公司电话}//以下为官网API注解ContactsContract.CommonDataKinds.Phon

    2022年6月3日
    34

发表回复

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

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