ÓÃCʵÏÖ´®Æ¥ÅäµÄ¼¸ÖÖ·½·¨,kmpºÍBM
±¾À´²»Ïë×Ô¼ºÐ´µÄ£¬µ«ÍøÉϵĴó¶¼ÊÇc++ʵÏֵģ¬ÓÐЩ×Ô³ÆÊÇCʵÏÖµÄ ¸´ÖƵ½±àÒëÆ÷Éϸù±¾ÔËÐв»ÁË¡£
KMP»¹ÊǺܾµäµÄËã·¨£¬ÎҾͲ»¼Ó×¢ÊÍÁË£¬Ö±½Ó·µ»ØµÚ¼¸¸öÊýÆ¥Åä..
#include <stdio.h>
#include <stdlib.h>
void getNext(char t[]);
int next[80];
int main()
{
char s[80],t[80];
int result=0;
printf("ÊäÈë×Ö·û´®:");
gets(s);
printf("ÊäÈë×Ö·û´®:");
gets(t);
getNext(t);
int i=0,j=0;
while(i<strlen(s)&&j<strlen(t))
{
if(s[i]==t[j]) {i++;j++;}
else
{
j=next[j];
if(j==-1) {i++;j++;}
}
}
if(j>=strlen(t)) result=i-j+1;
else result=0;
printf("%d\n",result);
}
getNext(char t[])
{
next[0]=-1;
int j=0,k=-1;
while(j<strlen(t))
{
if(k==-1||t[j]==t[k])
{
j++;
k++;
next[j]=k;
}
else k=next[k];
}
}
}
BMËã·¨£¬ÍøÉÏʵÏֵIJ»¶à£¬Óм¸¸ö°æ±¾µÄ¶¼ÊǺܸ´ÔÓ£¬Ö¸ÕëÀ´Ö¸ÕëÈ¥£¬ÆäʵûÄÇô·³
#include <stdio.h>
#include <stdlib.h>
int BM(char s[],char t[],int n,int m);
int dist(char s,char t[]);
int main()
{
char s[80],t[80];
printf("ÊäÈë×Ö·û´®:");
gets(s);
printf("ÊäÈë×Ö·û´®:");
gets(t);
Ïà¹ØÎĵµ£º
1.2 µ¥Ôª²âÊÔµÄÄ¿±êºÍ·½·¨
µ¥Ôª²âÊÔµÄÄ¿±êÊÇÊ²Ã´ÄØ£¿¾ÍÊÇÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦ÄÜÂß¼¡£ÕÒ³ö´úÂëµ¥Ôª±¾ÉíµÄËùÓй¦ÄÜÂß¼´íÎ󣬾ßÌåÀ´Ëµ£¬¾ÍÊǼì²â¶ÔÊý¾ÝµÄ¸÷ÖÖ·ÖÀàÊÇ·ñ¿¼ÂÇÈ«Ãæ£¬´¦ÀíÊÇ·ñÕýÈ·¡£µ¥Ôª²âÊÔ²¢²»ÊÇÓÃÀ´´úÌæÏµÍ³²âÊÔ¡¢ÐÔÄܲâÊԵģ¬ËüµÄÄ¿±êÏ൱Ã÷È·£¬¾ÍÊǼì²â´úÂëµ¥Ôª±¾ÉíµÄ¹¦ÄÜÂß¼´íÎó¡£
& ......
½âÎöHostsÎļþ
ºÜ¶àÓû§¶¼ÖªµÀÔÚWindowϵͳÖÐÓиöHostsÎļþ£¨Ã»Óкó׺Ãû£©£¬ÔÚWindows98ϵͳϸÃÎļþÔÚWindowsĿ¼£¬ÔÚWindows2000/XPϵͳÖÐλÓÚC:\Winnt\System32\Drivers\Etc Ŀ¼ÖС£¸ÃÎļþÆäʵÊÇÒ»¸ö´¿Îı¾µÄÎļþ£¬ÓÃÆÕͨµÄÎı¾±à¼Èí¼þÈç¼Çʱ¾µÈ¶¼ÄÜ´ò¿ª¡£
ÓüÇʱ¾´ò¿ªhostsÎļþ£¬Ê×ÏÈ¿´¼ûÁËÎ ......
¹Ø¼ü´Ê£º
Õ»Çø£º¾ÍÊÇÒ»¸öÄÚ´æµØÖ·¿Õ¼ä£¬Ã¿µ÷ÓÃÒ»´Îº¯Êý¾Í»áÔÚÕ»ÇøÎª´Ëº¯Êý·ÖÅäÒ»¶Î¿Õ¼ä£¨Ö÷ÒªÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿£¬
´Ë¶Î¿Õ¼äÏÂÃæ¾ÍÖ±½Ó¶¨ÒåΪº¯ÊýÕ»£©
ebp :ÓÃÓÚ´æ·Åº¯ÊýÕ»µÄÕ»¶¥µØÖ·
esp:ÓÃÓÚ´æ·Å´Ëº¯ÊýÕ»µÄÕ»µ×µØÖ·
×¢Ò⣺ջ¶¥µØÖ·´óÓÚÕ»µ×µØÖ·£¬Õ»ÊÇ´ÓÕ»¶¥ÏòÕ»µ×Ôö³¤¡£¼´ebp-->esp;
ÏÂÃæÎÒÃÇ·ÖÎöÈçÏ´úÂëÀý×Ó£¬¿´ ......
extern "C"
Ŀ¼
¸ÅÊö ±àÒ뷽ʽ ϰ¹ßÓ÷¨
¸ÅÊö
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵Ä
¡¡¡¡externÊÇC/C++ÓïÑÔÖбíÃ÷º¯Ê ......