编程思路一:将输入的字符串按照逆序存放到另一个数组中,比较两者是否相同,如是,则为对称字符串。
#include<stdio.h>
#include<string.h>
int main()
{
int i, length;
char str1[80], str2[80];
printf("Enter a string:");
gets(str1);//取得一字符串
length = strlen(str1);//计算数组个数
for (i = 0; i < length; i++)
{
str2[i] = str1[length -1- i];//逆序存放
}
if (strcmp(str1,str2)==0)//strcmp两字符串比较函数
printf("Yes\n");
else
printf("No\n");
return 0;
}
编程思路二:按首尾字符两两比较输入的字符串,即第1位与最后1位比较,第2位与倒数第2位比较……如果每一对字符均相对,则为对称字符串。
#include<stdio.h>
#include<string.h>
int main()
{
int i, length;
char str[80];
printf("Enter a string:");
gets(str);
length = strlen(str);
for (i = 0; i < length/2; i++)
{
if (str[i] != str[length-1-i])
{
break;//首尾字符两两比较不相等则停止循环
}
}
if (i >= length / 2)
printf("Yes\n");//当首尾元素比完相等时打印yes
else
printf("No\n");
return 0;
}
输入一个以回车结束的字符串 判断该字符串是否对称(正序与逆序相同 如aBc2cBa为对称字符串)