r1->vec[r1->len+i]= '\\0' ; // ÌíÉÏ×Ö·û´®½áÊø±ê¼Ç r1->len= r1->len+r2->len ; // ÐÞ¸Äд®³¤¶È
} }
£¨2£©ÉèxºÍyÁ½¸ö´®¾ù²ÉÓÃ˳Ðò´æ´¢·½Ê½£¬ÏÂÃæµÄ³ÌÐòÊDZȽÏx ºÍyÁ½¸ö´®ÊÇ·ñÏàµÈµÄº¯Êý£¬ÊÔÍê³É³ÌÐòÌî¿Õ¡£
#define MAXLEN 100 typedef struct
{ char vec[MAXLEN]; len; } str; int same (x,y) str *x,*y; { int i=0,tag=1;
if (x->len != y->len) return (0); // (»ò <> ) else
{ while ( i
{ if ( x->vec[i] != y->vec[i] ) tag=0 ; i++ ; £¨ »ò i=i+1 £© } return (tag); } }
£¨4£© ÏÂÃæËã·¨ÊÇÅжÏ×Ö·û´®ÊÇ·ñΪ»ØÎÄ£¨¼´Õý¶ÁºÍµ¹¶ÁÏàͬ£©£¬ÊÔÍê³É³ÌÐòÌî¿Õ¡£
#include \typedef struct
{ char vec[MAXLEN]; int len; }str;
void Palindrome (str s) { int i=0;
ing j= s.len-1 ; while ( j-i>=1 )
{ if ( s.vec[i]== s.vec[j] )
{i++; j-- ;continue} // (»ò j=j+1 ) else break; }
if ( j-i>=1 )
cout<<\
29
else
cout<<\}
Î壮 ±à³ÌÌâ
£¨1£©ÉèÏÂÃæËùÓõĴ®¾ù²ÉÓÃ˳Ðò´æ´¢·½Ê½£¬Æä´æ´¢½á¹¹¶¨ÒåÈçÏ£¬Çë±àдÏÂÁÐËã·¨£º #define MAXLEN 100 typedef struct
{ char vec[MAXLEN]; int len; } str;
¢Ù ½«´®ÖÐrÖÐËùÓÐÆäֵΪch1µÄ×Ö·û»»³Éch2µÄ×Ö·û¡£ ¢Ú ½«´®ÖÐrÖÐËùÓÐ×Ö·û°´ÕÕÏà·´µÄ´ÎÐòÈÔ´æ·ÅÔÚrÖС£ ¢Û ´Ó´®rÖÐɾ³ýÆäÖµµÈÓÚchµÄËùÓÐ×Ö·û¡£
¢Ü ´Ó´®r1ÖеÚindex¸ö×Ö·ûÆðÇó³öÊ×´ÎÓë×Ö·ûr2ÏàͬµÄ×Ó´®µÄÆðʼλÖᣠ¢Ý ´Ó´®rÖÐɾ³ýËùÓÐÓë´®r3ÏàͬµÄ×Ó´®£¨ÔÊÐíµ÷Óõڣ¨4£©Ð¡ÌâµÄº¯Êý£©¡£ ¢Þ ±àдһ¸ö±È½Ïx ºÍyÁ½¸ö´®ÊÇ·ñÏàµÈµÄº¯Êý¡£ ½â£º
¢Ù//Ë㷨˼Ï룺´ÓÍ·ÖÁβɨÃèr´®£¬¶ÔÓÚֵΪch1µÄÔªËØÖ±½ÓÌæ»»³Éch2¼´¿É¡£
str *trans(r,ch1,ch2) str *r;
char ch1,ch2; { int i;
for(i=0;i
if(r->vec[i]==ch1)
r-vec[i]=ch2;
return(r); }
¢Ú//Ë㷨˼ÏëÊÇ£º½«µÚÒ»¸öÔªËØÓë×îºóÒ»¸öÔªËؽ»»»£¬µÚ¶þ¸öÔªËØÓëµ¹ÊýµÚ¶þ¸öÔª
Ëؽ»»»£¬ÒÀ´ÎÀàÍÆ£¬±ã½«¸Ã´®µÄËùÓÐ×Ö·û·´ÐòÁË¡£
str *invert (r) str *r;
{ int i; char x;
for(i=0;i<(r->len%2);i++) { x=r->vec[i];
r->vec[i]=r->[r->len-i+1]; r->vec[r->len-i+1]=x; }
return (r ); }
¢Û//Ë㷨˼Ï룺´ÓÍ·µ½Î²É¨Ãèr´®£¬¶ÔÓÚֵΪchµÄÔªËØÓÃÒƶ¯µÄ·½Ê½½øÐÐɾ³ý¡£
str *delall(r,ch)
str *r;
30
char ch; { int i,j;
for(i=0;i
for(j=i;j
r->vec[i]=r->vec[i+1]; r->len=r->len-1; }
return (r );
}
¢Ü//Ë㷨˼Ï룺´ÓµÚindex¸öÔªËØ¿ªÊ¼É¨Ãèr1£¬µ±ÆäÔªËØÖµÓër2µÄµÚÒ»¸öÔªËصÄÖµ
Ïàͬʱ£¬Åж¨ËüÃÇÖ®ºóµÄÔªËØÖµÊÇ·ñÒÀ´ÎÏàͬ£¬Ö±µ½r2½áÊøΪֹ£¬Èô¶¼ÏàͬÔò·µ»Ø£¬·ñÔò¼ÌÐøÉÏÊö¹ý³ÌÖ±µ½r1ɨÃèÍêΪֹ¡£ int partposition(r2,r1,index) str *r2, *r1; int index;
{ int i,j,k;
for(i=index;r1->vec[i];i++)
for(j=i,k=0;r1->vec[j]==r2->vec[k];j++,k++) if(!r2->vec[k+1]) return(i); return(-1); }
¢ÝË㷨˼Ï룺´ÓλÖÃ1¿ªÊ¼µ÷Óõڣ¨4£©Ð¡ÌâµÄº¯Êýpartposition£¨£©£¬ÈôÕÒµ½ÁËÒ»¸ö
Ïàͬ×Ó´®£¬Ôòµ÷ÓÃdelsubstring£¨£©£¬ÔÙÏàͬµÄ·½·¨²éÕÒºóÃæλÖõÄÏàͬ×Ó´®¡£ str *delstringall(r,r3) str *r, *r3; { int i=0;
while(i
{ if(partposition(r,r3,i)!=-1)
delsubstring(r,i,r3->len) i++; }
}
¢ÞÁ½¸ö´®ÏàµÈµÄÌõ¼þÊÇÁ½¸ö´®µÄ³¤¶ÈÏàµÈ£¬ÇÒÁ½¸ö´®µÄ¶ÔÓ¦µÄ×Ö·û±ØÐ붼Ïàͬ¡£
int same(x,y) str *x,*y;
{ int i=0,tag=1;
if(x->len!=y->len)
return(0); else
{ while(i
{ if(x->vec[i]!=y->vec[i])
31
tag=0;
i++; }
return(tag); }
}
£¨2£© Éè¼ÆÒ»Ëã·¨ÅжÏ×Ö·û´®ÊÇ·ñΪ»ØÎÄ£¨¼´Õý¶ÁºÍµ¹¶ÁÏàͬ£© ½â£º#include \
typedef struct { char *head; int length; }Hstring;
void isPalindrome(Hstring s) {
int i=0;
int j=s.length-1; while(j-i>=1) {
if (s.head[i]==s.head[j]) {i++; j--; continue;} else break; }
if(j-i>=1)
printf(\ else
printf(\}
£¨3£© Éè¼ÆÒ»Ëã·¨´Ó×Ö·û´®ÖÐɾ³ýËùÓÐÓë×Ö´®\del\ÏàͬµÄ×Ó´® ½â£º#include \
#include \typedef struct { char *head;
int length; }Hstring;
char *DeleteSubString(Hstring S,Hstring T) {
int i=0; int j,k;
int Slength=S.length; int Tlength=T.length; char *tail;
while(i<=Slenght-Tlength) {
32