c程序填空
輸入abcdabcdefcdeint fun(char *p,char *q);main(){int a;char s[80],t[80];gets(s);gets(t);a=fun(s,t);printf("%d",a);}int fun(char *p,char *q){int i;char *p1=p,*q1;for(i=0;*p!='';p++,i++){p=p1+i;if(*p!=*q) continue;for(q1=q+1,p=p+1;*p!=''&&*q1!='';q1++,p++)if(*p!=*q1) break;if(*q1=='') return i;}return -1;}為什么輸出6,,
這個(gè)是經(jīng)典的KMP子串查找算法,,網(wǎng)上及很多教程上都有它具體實(shí)現(xiàn)的原理的(有點(diǎn)小復(fù)雜),而它的返回結(jié)果是子串在原串的位置
你的
abcdabcdef
中
cde
的位置就是
6
Tags:程序
相關(guān)推薦
便查問答是一款實(shí)用的網(wǎng)絡(luò)熱門知識(shí)問答平臺(tái),,專注于分享你不知道的知識(shí),、經(jīng)驗(yàn)及生活問題,在這里所有人都能找到答案歡迎網(wǎng)友參與討論,。