首页 新闻 会员 周边

C 语言问题

0
悬赏园豆:15 [已解决问题] 解决于 2014-03-10 16:55

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;

肯定有遗漏的情况,希望高手补充,谢谢

全心的主页 全心 | 初学一级 | 园豆:181
提问于:2014-03-10 15:14
< >
分享
最佳答案
1

有 if(substr[j]=='\0'),没有str里不存在substr的情况或=='\0',还是LS合适

收获园豆:15
iEvent | 小虾三级 |园豆:529 | 2014-03-10 16:04

嗯,我在改改谢了

全心 | 园豆:181 (初学一级) | 2014-03-10 16:54
其他回答(2)
1
Launcher | 园豆:45045 (高人七级) | 2014-03-10 15:19
0

研究的话就是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 }
吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-10 15:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册