/**
* 实验题目:
* 求一个字符串是否为回文
* 实验内容:
* 设计一个程序,判断一个字符串是否为回文(顺读和倒读都一样的字符串成为回文)。
*/
#include <stdio.h>
#include <string.h>
#define MAX 100 // 字符串的最大长度
/*-------------------------判断字符串s是否为回文----------------------------*/
/*
* 采用的方法:用flag表示是否为回文,其初值为1。用i从左向右扫描字符串s,用j从
* 右向左扫描字符串s,若s[i]与s[j]不相等,则flag=0(表示不是回文)并退出循环,否则
* 继续比较直到i<j不成立。
*/
static int func(char s[])
{
int flag = 1;
int i, j, len = strlen(s); // len为字符串的长度
for(i = 0, j = len - 1; i < j; i++, j--)
{
if(s[i] != s[j])
{
flag = 0;
break;
}
}
return (flag);
}
int main(void)
{
char s[MAX];
printf("输入一个字符串:");
scanf("%s", s);
if(func(s) == 1)
printf("%s字符串是回文\n", s);
else
printf("%s字符串不是回文\n", s);
return 0;
}
测试结果:
输入一个字符串:abcdcba
abcdcba字符串是回文