回文串:即是正读反读都一样的字符串
如何用c语言实现回文串的判定
如果是回文串输出true 如果不是 输出false
#include<stdio.h>
#include<string.h>
#include<assert.h>
char * my_strlwr(char * str) //定义一个my_strlwr函数
{
assert(str); //str的非空性
char *ret = str; //定义一个ret保存最初的str
while(*str != '\0') //判断字符串是否结束
{
if((*str >= 'A')&&(*str <= 'Z'))//判断当前啊字符是否是 大写字母
{
*str = *str +32; //根据ascii码表将其转化为小写字母
str++;
}
else
str++;
}
return ret; //返回该字符串数组的首地址
}
int main ()
{
int i,j;
int len;
char S1[100];//输入字符串
char S2[100];//倒序字符串
scanf("%s",S1);
my_strlwr(S1);
len = strlen(S1);
for(i=len-1,j=0;i>=0;i--,j++)//利用循环进行倒序输入
{
S2[j] = S1[i];
}
for(i=0,j=0;i<len;i++,j++)
{
if(S1[i]!=S2[i])
{
printf("false");//遍历过程中如果有不想同 则结束
break;
}
else if(i==len-1)
{
printf("true");
}
}
return 0;
}
关于assert 的作用与使用方法的介绍 见下一篇