C语言-判断回文字符串(二)
C语言 字符串 判断 回文
2023-06-13 09:11:52 时间
大家好,又见面了,我是你们的朋友全栈君。
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.cn/138863.html原文链接:https://javaforall.cn
相关文章
- C语言判断回文字符串(指针)
- C语言 整数与字符串的相互转换
- C语言教程学习19-22节
- 马拉车算法 (最长回文串 例题 密码截获)----C语言—菜鸟级
- C语言通过指针引用数组【C语言学习笔记】
- c++实现strstr函数_C语言字符串数组
- 【C语言进阶】灵活利用宏定义做字符串转换
- C语言实现输出用户输入的字符串中最长的单词
- 初识C语言第一话之数据类型、常量变量、字符串、转义字符与注释
- 【C语言】关于整型提升、截断、打印数据的结果
- C语言中的字符数组和字符串详解编程语言
- C语言中字符串数组排序问题详解编程语言
- 结构体的声明,定义及其初始化,C语言结构体完全攻略
- C语言字符串数组
- C语言百钱买百鸡问题(详解版)
- C语言strcat()函数:字符串连接(拼接)
- Linux下C语言动态链接库实现(linuxc动态链接库)
- Mongodb封装——开启C语言开发之旅(cmongodb封装)
- C语言连接Oracle数据库字符串操作技巧(c连接oracle字符串)
- 数据库使用C语言连接Oracle数据库实现自动化管理(c 程序连接oracle)
- 使用C语言实现Oracle数据库连接(c oracle连接语句)
- 利用C语言操作Oracle,读取表头信息(c oracle读取表头)
- 深入C语言把文件读入字符串以及将字符串写入文件的解决方法
- 使用C语言递归与非递归实现字符串反转函数char*reverse(char*str)的方法
- C语言可变参数函数详解示例
- C语言切割多层字符串(strtok_rstrtok使用方法)
- 纯C语言:贪心Prim算法生成树问题源码分享
- IOS开发之路--C语言数组和字符串
- C语言实现图的遍历之深度优先搜索实例