有关子串查找函数的编程,不知道问题出在哪儿~求大神指教~
我想编一个函数子串查找函数,作用是查找一个字符(子串)在另一个字符串中第一次出现的位置。(书上就是这样写的,但是在编译时输出始终有问题,总是输出-1)#include<iostream>
#include<cstring>
using namespace std;
int find_substr(char str[],char sub_str[])
{
int len=strlen(str),
sub_len=strlen(sub_str);
for(int i=0;i<=len-sub_len;i++)
{
int j=0;
while(j<sub_len&&sub_len==str[i+j])
j++;
if(j==sub_len)
return i;
}
return -1;
}
int main()
{
char a[10]="abcdefgh";
char sub_a[]="bc";
cout<<find_substr(a,sub_a)<<endl;
return 0;
}
此时不是应该输出2吗?但实际输出是:-1
出现了什么问题呀?