m串是否在str中存在 成功返回位置//求在本程序上修改
[code=C/C++]
#include <stdio.h>
#include <string.h>
int fun(char* str,char* m)
{
int i,j=0,len=0,;
for(i=0;str[i]!='\0';i++)
{
if(str[i]==m[j])
{
j++;
len++;
if(m[j]=='\0') return len;
}
else if(str[i]!=m[j])
{
j=0;
len=0;
}
}
}
int main()
{
printf("pos=%d\n",fun("heeeello","el"));
}
[code]
[解决办法]
- C/C++ code
#include <stdio.h>#include <string.h>int fun(char* str,char* m){ int i,len=0; for(i=0;str[i]!='\0';i++) { if(str[i]==m[0]) { for(len=1;m[len]!='\0'&&str[i+len]!='0';len++) { if(m[len]!=str[i+len])break; } if(m[len]=='\0') return len; } } return -1;}int main(){ printf("pos=%d\n",fun("heeeello","el"));}