【题目5-6】编程判断输入的一串字符串是否为“回文”,所谓“回文”是指顺读和倒读都一样的字符串,入

【题目5-6】编程判断输入的一串字符串是否为“回文”,所谓“回文”是指顺读和倒读都一样的字符串,入“level”和“ABCCBA”都是回文。 分析: (1) 运用两个指针对字符串的分别指向字符串的首和尾 (2) 比较首位指针所指向的内容,若相等则首指针向后移动,尾指针向前移动,直到首位指针交换,比较结束 (3) 在比较过程中,若发现有首尾不同的情况,则说明字符串为非回文字符串,否则则是回文字符串 【题目5-6】代码及运行结果:

#include"stdio.h"
void main(void)
{
unsigned char l = 0, i, j, temp1[200];
printf("\n\n\n Please Input wenzi chuan: ");
scanf("%s", temp1); //输入到TEMP1
while(temp1[l] != '\0') l++; //测出字符串长度.
j = l / 2; //半个字串长度
for (i = 0; i <= j; i++) {
if (temp1[i] != temp1[l - 1 - i]) break;
}
if (i == (j + 1)) printf("y");
else printf("n");
}
//------------------------
//上述程序,编译后运行,最多可以输入200个字符,回车键结束,程序会自动输出 y、n。

//用指针来做

#include"stdio.h"
void main(void)
{
unsigned char l = 0, i, j, temp1[200], *pt;
pt = temp1;
printf("\n\n\n Please Input wenzi chuan: ");
scanf("%s", pt); //输入到TEMP1
while(*pt != '\0') {l++; pt++;} //测出字符串长度.
j = l / 2; //半个字串长度
pt = temp1; //从头开始查找
for (i = 0; i <= j; i++) {
if (*(pt + i) != *(pt + l - 1 - i)) break;
}
if (i == (j + 1)) printf("yes\n");
else printf("no\n");
}
//------------------------
//上述程序,编译后运行,最多可以输入200个字符,回车键结束,程序会自动输出 y、n。
温馨提示:答案为网友推荐,仅供参考
相似回答