C语言程序设计 判断回文例7-11
2021/7/17 22:06:15
本文主要是介绍C语言程序设计 判断回文例7-11,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
例7-11原题:输入一个以回车符为结束标志的字符串(少于80个字符),判断该字符串中心对称,如“abcba”、“abccba”是回文,“abcdba”不是回文。
在C语言中,字符串的存储和运算可以用一维字符数组来实现。数组长度取上限80,以回车符 ‘\n’ 作为输入结束符。
课本的源码及我的理解:
#include<stdio.h> innt main() { int i,k;//两个变量,一个从前移动,一个从后移动 char line[80];//定义字符串 printf("Enter a string: ");//输入提示 k=0; while((line[k]=getchar())!='\n')//输入的字符不是回车的时候 继续输入 k++;//这里可以数出字符串的有效长度 line[k]='\0';//否则结束,以 '\0'结尾 //判断字符串line是否为回文 //i 和 k 两个下标从字符串首尾两端同时向中间移动,逐对判断对应字符是否相等 i=0; k=k-1;//k是要从后面移动的 while(i<k)//一直移动,直到 i=k { if(line[i]!=line[k])//如果两个对应的字母不相等没必要继续了,循环结束跳到while外的语句 break; i++;//否则继续移动 k--; } if(i>=k)//若一直循环,说明对应的字母一直相等,也就是回文 printf("It is a pallindrome.\n"); else//根据条件,这里是从break语句接下来的 printf("It is not a pallindrome.\n"); return 0; }
我的解释有误请指出,谢谢!
既然都写了,顺带把一维字符数组也写了吧
定义一个有80个字符型元素的数组str:
char str[80];
字符型数组的初始化
char t[5]={'H','a','p','p','y'};
对静态数组s的前5个元素赋初值,其余元素的初值为0
static char s[6]={'H','a','p','p','y'};
static char s[6]={'H','a','p','p','y',0};
整数0代表字符 ‘\0’ ,所以上式还等价于
static char s[6]={'H','a','p','p','y','\0'};
同样的,如果对全部元素赋了初值,就可以省略数组长度,即:
static char s[]={'H','a','p','p','y','\0'};
上式的数组长度是6
可以用循环语句输出数组 t 的所有元素
for(i=0;i<5;i++) putchar(t[i]);
课本解释的字符串:
字符串:有效字符 和 字符串结束符 ‘\0’ 组成
例如:字符串 “Happy” 由6个字符组成,分别是 有效字符’H’, ‘a’, ‘p’, ‘p’, ‘y’ 和 字符串结束符’\0’
将字符串存入字符数组时,由于它有一个结束符 ‘\0’ ,数组长度 至少是字符串的有效长度+1.
字符串常量:用一对双引号括起来的字符序列
字符串的存储——一维数组初始化
static char s[6]={'H','a','p','p','y','\0'};
可以使用字符串常量,上式等价于:
static char s[6]={"Happy"};
static char s[6]="Happy";
这篇关于C语言程序设计 判断回文例7-11的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解
- 2024-12-20利用Gemini构建处理各种PDF文档的Document AI管道