开发者社区> 问答> 正文

c 语言 求子串在主串中的位置

写了一个简单的求子串在主串第一次出现的位置的方法
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;
肯定有遗漏的情况,希望高手补充,谢谢

展开
收起
a123456678 2016-03-19 14:00:08 3082 0
1 条回答
写回答
取消 提交回答
  • 第一:
    if(substr[j]=='0')
    return num;
    错了,
    假如这句话不执行,则没有返回值。

    第二:
    加入字串1为:11234,字串2为:12
    你的代码判断不出来,你可以自己分析一下原因

    第三:
    一点个人建议,编程风格问题:
    不要使用i,j这类的名字了,改为 str1_pos,str2_pos一类的(pos是position简写的)

    2019-07-17 19:08:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载