Ò»¡¢ÊµÑéÄ¿µÄºÍÒªÇó
1Àí½â´®µÄÒ»°ãÏßÐÔ±íÖ®¼äµÄ²îÒì¡£
2ÖØµãÕÆÎÕÔÚ˳Ðò´®ÉϺÍÁ´´®ÉÏʵÏÖ´®µÄ»ù±¾ÔËËãËã·¨¡£ 3ÕÆÎÕ´®µÄ¼òµ¥Æ¥ÅäËã·¨ºÍKMPËã·¨¡£
4Áé»îÔËÓô®ÕâÖÖÊý¾Ý½á¹¹½â¾öһЩ×ÛºÏÓ¦ÓÃÎÊÌâ¡£
¶þ¡¢ÊµÑé»·¾³¡¢ÄÚÈݺͷ½·¨
ʵÑéÄÚÈÝ£º
1ʵÏÖ˳Ðò´®µÄ¸÷ÖÖ»ù±¾ÔËËã¡£ 2ʵÏÖÁ´´®µÄ¸÷ÖÖ»ù±¾ÔËËã¡£
3ʵÏÖ˳Ðò´®µÄ¸÷ÖÖģʽƥÅäÔËËã¡£ 4ÇóÒ»¸ö´®ÖгöÏֵĵÚÒ»¸ö×î³¤ÖØ¸´´®¡£ ʵÑé·½·¨£º
ͨ¹ýÉÏ»ú²Ù×÷Íê³É¸÷ÄÚÈÝ¡£ ʵÑé»·¾³£º
ʵÑéÓÃPC»úһ̨£¬Ê¹ÓòÙ×÷ϵͳΪWindows XP Professional£¬°²×°OFFICE 2003¡¢VC++µÈÈí¼þ¡£
Èý¡¢ÊµÑé¹ý³ÌÃèÊö
ʵÑéÌâ4.1ʵÏÖ˳Ðò´®¸÷ÖÖ»ù±¾ÔËËãµÄËã·¨
±àдһ¸ö³ÌÐòalgo4-1.cpp£¬ÊµÏÖ˳Ðò´®µÄ¸÷ÖÖ»ù±¾ÔËË㣬²¢ÔÚ´Ë»ù´¡ÉÏÉè¼ÆÒ»¸ö³ÌÐòexp4-1.cpp Íê³ÉÈçϹ¦ÄÜ£º
1½¨Á¢´®Ë¡°abcdefghefghefghijklmn¡±ºÍ´®s1=¡±xyz¡±; 2Êä³ö´®s; 3Êä³ö´®sµÄ³¤¶È£»
4ÔÚ´®sµÄµÚ9¸ö×Ö·ûλÖòåÈë´®s1¶ø²úÉú´®s2; 5Êä³ö´®s2;
6ɾ³ý´®sµÚ2¸ö×Ö·û¿ªÊ¼µÄ5¸ö×Ö·ûÌæ»»³É´®s1¶ø²úÉú´®s2£» 7Êä³ö´®s2;
8½«´®sµÚ2¸ö×Ö·û¿ªÊ¼µÄ5¸ö×Ö·ûÌæ»»³É´®s1¶ø²úÉú´®s2; 9Êä³ö´®s2;
10ÌáÈ¡´®sµÄµÚ2¸ö×Ö·û¿ªÊ¼µÄ10¸ö×Ö·û¶ø²úÉú´®s3; 11Êä³ö´®s3£»
12½«´®s1ºÍ´®s2Á¬½ÓÆðÀ´¶ø²úÉú´®s4; 13Êä³ö´®s4.
½â£º±¾¹¤³ÌProj4_1×é³É½á¹¹Èçͼ4.1Ëùʾ¡£algo4-1.cppÎļþ£¬ÆäÖаüº¬ÈçϺ¯Êý£º StrAssign(SqString &str,char cstr[]):ÓÉ´®³£Á¿cstr´´½¨´®str. StrCopy(SqString &s,SqString t):½«´®t¸´ÖƵ½´®s.
StrEqual(SqString s,SqString t):ÅжÏÁ½¸ö´®sºÍtÊÇ·ñÏàͬ¡£ StrLength(SqString s):Çó´®sµÄ³¤¶È¡£
Concat(SqString s,SqString t):½«´®tÁ¬½Óµ½´®sÖ®ºó²úÉúд®¡£
SubStr(SqString s,int i,int j)£ºÓÉ´®sµÄµÚi¸ö×Ö·û¿ªÊ¼µÄj¸ö×Ö·û²úÉúд®¡£ InsStr(SqString s1,int i,SqString s2):½«´®s2²åÈëµ½´®s1µÄµÚi¸öλÖô¦¡£ DelStr(SqString s,int i,int j):ɾ³ý´®sµÄµÚi¸ö×Ö·û¿ªÊ¼µÄj¸ö×Ö·û²úÉúд®¡£ RepStr(SqString s,int i,int j,SqString t):½«´®sµÄµÚi¸ö×Ö·û¿ªÊ¼µÄj¸ö×Ö·ûÌæ»»³É´® t²úÉúд®
DispStr(SqString s):Êä³ö´®sµÄËùÓÐÔªËØ¡£ ¶ÔÓ¦µÄ³ÌÐòÈçÏ£º
ͼ4.1 Proj4_1¹¤³Ì×é³É
//ÎļþÃû:algo4-1.cpp #include
{ char data[MaxSize]; } SqString;
void StrAssign(SqString &s,char cstr[]) //sΪÒýÓÃÐͲÎÊý { int i;
for (i=0;cstr[i]!='\\0';i++)
s.data[i]=cstr[i]; s.length=i;
//¶¨Òå¿ÉÈÝÄÉMaxSize¸ö×Ö·ûµÄ¿Õ¼ä //±ê¼Çµ±Ç°Êµ¼Ê´®³¤
int length;
//×î¶àµÄ×Ö·û¸öÊý
}
void StrCopy(SqString &s,SqString t) //sΪÒýÓÃÐͲÎÊý { int i; }
bool StrEqual(SqString s,SqString t) { bool same=true; }
int StrLength(SqString s) { }
SqString Concat(SqString s,SqString t) { SqString str; } int i;
str.length=s.length+t.length;
for (i=0;i str.data[i]=s.data[i]; str.data[s.length+i]=t.data[i]; for (i=0;i if (s.length!=t.length) same=false; for (i=0;i if (s.data[i]!=t.data[i]) { same=false; } break; //ÓÐÒ»¸ö¶ÔÓ¦×Ö·û²»Ïàͬʱ·µ»Ø0 else //³¤¶È²»ÏàµÈʱ·µ»Ø0 for (i=0;i s.data[i]=t.data[i]; s.length=t.length; return same; SqString SubStr(SqString s,int i,int j) { SqString str; } SqString InsStr(SqString s1,int i,SqString s2) { int j; } SqString DelStr(SqString s,int i,int j) { int k; SqString str; str.length=0; if (i<=0 || i>s.length || i+j>s.length+1) //²ÎÊý²»Õýȷʱ·µ»Ø¿Õ´® return str; //½«s.data[0..i-2]¸´ÖƵ½str str.data[k]=s.data[k]; for (k=0;k if (i<=0 || i>s1.length+1) //²ÎÊý²»Õýȷʱ·µ»Ø¿Õ´® return str; //½«s1.data[0..i-2]¸´ÖƵ½str //½«s2.data[0..s2.length-1]¸´ÖƵ½str //½«s1.data[i-1..s1.length-1]¸´ÖƵ½str str.data[j]=s1.data[j]; str.data[i+j-1]=s2.data[j]; str.data[s2.length+j]=s1.data[j]; for (j=0;j if (i<=0 || i>s.length || j<0 || i+j-1>s.length) return str; //²ÎÊý²»Õýȷʱ·µ»Ø¿Õ´® //½«s.data[i..i+j]¸´ÖƵ½str for (k=i-1;k str.data[k-i+1]=s.data[k]; for (j=i-1;j str.length=s1.length+s2.length; return str;
Ïà¹ØÍÆ¼ö£º