ddgw.net
当前位置:首页 >> 判断字符串回文测试用例 >>

判断字符串回文测试用例

可以用数组模拟栈来实现

#include<stdio.h>#include<string.h> int main() { char str1[200],str2[200]; gets(str1); int i; for(i=0;i<strlen(str1);i++) str2[strlen(str1)-1-i]=str1[i]; str2[strlen(str1)]='\0'; printf("%s\n",strcmp(str1,str2)?"不是回文":"是回文"); return 0; }

while是找到字符串的末尾,'\n'是所有字符串的最后一个字符,for循环是用来判断是不会回文的.j是从第一个字符开始,i是从最后一个字符开始,比较完一个字符后,j++,i--,一旦发现某个地方首位是不相等的,则不是回文退出

//---------------------------------------------------------------------------#include <stdio.h> int fun(char *a) /*检查字符串a是不是回文*/ { int e=0,b=0; while (a[e]) e++; e--; while (b<e) { if (a[b]!=a[e]) return 0; else { b++; e--; } } return 1; } int main(void) { printf(fun("ABC

#include void main(){char s[100];scanf("%s",s);int num=strlen(s);for(int i=0;i 评论0 0 0

char *p=new char[20]; scanf("%s",p); int i=0; while(p[i]!='\0') i++; bool yes=false; int j=0; while(1) { if(p[j]==p[i-j]) { j++; yes=true; if(j>=i)break; } else { yes=false; break; } } if(yes) printf("是回文"); else printf(" 不是回文”);

#include void main() { char a[20]; int i,j,d; gets(a); d = j=strlen(a); for(i=0;i 评论0 0 0

程序多处需要修正,你把下面这个试一下.#include<stdio.h>#include<string.h> int huiwen(char*s) { int i,j; j=strlen(s) - 1;//不能为strlen(s),那样调用s[j]会下标越限 for(i=0;i<j;i++) { if(s[i]==s[j]) j--; else break;//不符合回文条件 } if(i>=j)//当i==j时, s

int fun(char *s) { int len=strlen(s); if(len if(s[0]==s[len-1])//判断两侧字符是否相等 { char s2[m];int i; for(i=1;i s2[i-1]=s[i]; s2[i-1]='\0'; if(fun(s2)==1)//递归调用,判断内部字符串是否回文 return 1; } return 0; }

改成这样吧:#include#include int main() { char a[10],b[10]; int i,j; printf("请输入字符串\n"); gets(a); for(i=strlen(a)-1;i>=0;i--) b[i]=a[strlen(a)-i-1]; //b变成a的逆序数组 b[strlen(a)]='\0'; //b的结尾符 if(strcmp(a,b)==0) printf("是回文"); else printf("不是回文"); return 0; } 试一试

网站首页 | 网站地图
All rights reserved Powered by www.ddgw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com