C语言定义一个函数,判断字符串中是否包含另一个子串

C语言定义一个函数,判断字符串中是否包含另一个子串C语言的

int find(char* source/*源串*/, char* target/*目标串*/)//找到返回位置,未找到返回-1
{
int i,j;
int s_len=strlen(source);
int t_len=strlen(target);
if(t_len>s_len)
{
return -1;
}
for(i=0;i<=s_len-t_len;i++)
{
j=0;
int flag=1;
if(source[i]==target[j])
{
int k,p=i;
for(k=0;k<t_len;k++)
{
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
return i;
}
}
return -1;
}

追问

什么玩意

追答

你发的什么玩意,这就是什么玩意的答案

追问

不好意思啊

不是我们要求的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-21
以下str()函数的作用是判断字符串s1中是否包含字符串s2,代码如下:
void str(char*s1,char*s2)
{
int i=0,j,k=1;
for(;;i++)
{
j=0;
while(s2[j]!='\0')
{
if(s1[i+j]!='\0'||s1[i+j]!=s2[j])
{
k=0;
break;
}
j++;
}
if(k)break;
}
if(k)printf(“字符串%s中包含字符串%s。\n”,s1,s2);
else printf(“字符串%s中不包含字符串%s!\n”,s1,s2);
}追问

在我这里不好用,但我调试了

谢谢

追答

谢谢你采纳。
其中有一句中的if(s1[i+j]!='\0'……应该改成:
if(s1[i+j]=='\0'……
相信你自己已经做了调整。

追问

谢谢你啊,有疑问提问时找你

本回答被提问者和网友采纳
相似回答