int index(char str[],char substr[]){//求字串第一次出现的位置
int i=0,j=0,num=0;
while(str[i]!='\0'&&substr[j]!='\0'){
if(str[i]!=substr[j]){
j=0;i=i+1; num=i;}
else{
i++;j++;
}
}
if(substr[j]=='\0')
return num;
肯定有遗漏的情况,希望高手补充,谢谢
有 if(substr[j]=='\0'),没有str里不存在substr的情况或=='\0',还是LS合适
嗯,我在改改谢了
研究的话就是LS的那个连接,
简单的话,你这算法我实在看不懂`.
1 int index(char str[],char substr[]) 2 { 3 int i=0; 4 int j=0; 5 while(str[i]!='\0') 6 { 7 while(substr[j]!='\0') 8 { 9 if(str[i+j]!=substr[j]){break;} 10 j++; 11 } 12 if(substr[j]=='0'){return i;} 13 i++;j=0; 14 } 15 return -1; 16 }