问题描述
- c 语言 求子串在主串中的位置
-
写了一个简单的求子串在主串第一次出现的位置的方法int index(char str[],char substr[]){//求字串第一次出现的位置
int i=0,j=0,num=0;
while(str[i]!=''&&substr[j]!=''){
if(str[i]!=substr[j]){ j=0;i=i+1; num=i;} else{ i++;j++; }
}
if(substr[j]=='')
return num;肯定有遗漏的情况,希望高手补充,谢谢
解决方案
第一:
if(substr[j]=='')
return num;
错了,
假如这句话不执行,则没有返回值。
第二:
加入字串1为:11234,字串2为:12
你的代码判断不出来,你可以自己分析一下原因
第三:
一点个人建议,编程风格问题:
不要使用i,j这类的名字了,改为 str1_pos,str2_pos一类的(pos是position简写的)
解决方案二:
谢谢啦,编程风格真的很重要的。
时间: 2025-01-15 02:34:18