C语言学习之路——输入字符串,判断输入的字符串是否回文
初步方法
#include<stdio.h>
#include<string.h>
int strLength(char s[]){
int i=0;
while(s[i]) i++;
return i;
}
int isHW(char s[]){
int i=0,j=strLength(s)-1;
while(i<j){
if(s[i]!=s[j]) return 0;
i++;
j--;
}
return 1;
}
int main(){
char s[1024];
gets(s);
if(isHW(s))
printf("yes\n");
else
printf("no\n");
return 0;
}
改进方法
判断的方法有很多,改进一下代码改成递归的方式
#include<stdio.h>
#include<string.h>
int strLength(char s[]){
int i=0;
while(s[i]) i++;
return i;
}
int isHW(char s[],int start,int end){
if(start >= end)
return 1;
else{
if(s[start] != s[end])
return 0;
return isHW(s,start,end-1);
}
}
int main(){
char s[1024];
gets(s);
if(isHW(s,0,strLength(s)-1))
printf("yes\n");
else
printf("no\n");
return 0;
}
纯属学习记录,有错或有更好方法欢迎留言相互学习
|