输入字符串s和t,判断t是否为s的子串,如果是,输出t在s中的起始位置(从0开始计数);否则,输出-1。

#include<stdio.h>#include<string.h>intsearch(char*p,char*q){intlenp=strlen(p),lenq=st... #include<stdio.h>
#include<string.h>
int search(char *p,char *q)
{
int lenp=strlen(p),lenq=strlen(q),i,j,k;
char *s;
for(i=0;i<=(lenp-lenq);i++)
{
s=p+i;
k=1;
for(j=0;j<lenq;j++)
{
if(*s!=*(q+j))
{k=0;
break;
}
p++;
}
if(k==1) break;
}
if(k==0) return (-1);
else return (i);
}
int main()
{
char p[80],q[80];
gets(p);
gets(q);
printf("%d",search(p,q));
}
到底哪里错了,求大佬搭救
展开
 我来答
fallx
2018-11-28 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:705万
展开全部
int search(char *p,char *q)
{
int lenp=strlen(p),lenq=strlen(q),i,j,k;
char *s;
for(i=0;i<=(lenp-lenq);i++){
  s=p+i;
  k=1;
  for(j=0;j<lenq;j++){
    if(*s!=*(q+j)){
      k=0;
      break;
    } 
    //p++; //这里出亮激册错.改为s++就好,要比较的是铅粗s串中内容。
    s++;     敬宏 
  }
   
  if(k==1) 
    break;
}
if(k==0) 
  return (-1);
else 
  return (i);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式