zqrx.net
当前位置:首页 >> 回文字符串C语言 >>

回文字符串C语言

#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; }

#include<iostream.h>#include<cstring> int fun(char *str) { int len,half; len=strlen(str); half=len/2; for(int i=0;i<half;i++) if(str[i]!=str[--len]) break; if(i>=half) return 1; else return 0; } void main() {char string[1024]; cout<<"please input a string:"<<endl; cin

int huiwen(char *s) { char *p = s; while(*p) p++;//找到结束符\0的位置. p--;//\0的前一个字符,就是字符串的最后一个字符. while(s<p) { if(*s != *p) return 0;//发现不同,不是回文. s++; p--;//二者向中间移动. } return 1;//到相遇后一直相同,

//你的错误在于递归调用的时候,i每次都是0,所以要用static int i = 0#include <stdio.h>#include <stdlib.h>#include <string.h> int hui(char a[10000]) { int n; static int i=0; //这里改为static int i = 0就对了,因为你递归调用i的时候每次都把i置为0了,

#include#include char _str[1005]; int IsH(char _str[],int _L,int _R) { if(_L>=_R)return 1; if(_str[_L]-_str[_R]) return 0; return IsH(_str,_L+1,_R-1); } void main() { while(gets(_str),strcmp(_str,"#"))//输入#结束 printf("%s\n",IsH(_str,0,strlen(_str)-1)?"Yes":"No"); }

int fun( char str[] ){ int i,j,n;n=strlen(str);for(i=0,j=n-1;i&lt;=(n-1)/2;i++,j--)if(str[i]!=str[j]) break;if(i&gt;j) return 1;return 0;}void main(){ char a[80]; gets(a); if ( fun(a)==1 ) printf( "回文\n"); else printf("非回文\n");}

#include&lt;stdio.h&gt;#include&lt;string.h&gt;char _str[1005];int IsH(char _str[],int _L,int _R){ if(_L&gt;=_R)return 1; if(_str[_L]-_str[_R]) return 0; return IsH(_str,_L+1,_R-1);}void main(){ while(gets(_str),strcmp(_str,"#"))//输入#结束 printf("%s\n",IsH(_str,0,strlen(_str)-1)?"Yes":"No");}

思路很简单,如果一个字符串是回文,那么它就应该是左右对称的.那么,第一个字符就应该和@前一个字符相等,依次类推#include <iostream> using namespace std; bool ok(char buf[]) { int st=0,end=0; while(buf[end]!='@') end++; end--;//找

我这里有一个源程序,自己看看吧,不懂就问我#include <stdio.h> int palind(char str[],int k, int i)/*自定义函数检测是否为回文字符串*/ { if(str[k]==str[i-k]&&k==0)/*递归结束条件*/ return 1; else if(str[k]==str[i-k])/*判断相对应的两个字符是否相等*/ palind

#include /*fun()函数:传入一个字符数组,如果是回文序列返回1,不是就返回0*/ int fun(char a[]) { int i,j,n=0; while(a[n]!='\0') n++; /*计算传入字符串(数组)长度*/ n--; /*跳出while循环时 a[n]='\0',故n--*/ for(i=0,j=n;i if(a[i]!=a[j]) break; if(i>=j)

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