输入字符串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));
}
到底哪里错了,求大佬搭救 展开
#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));
}
到底哪里错了,求大佬搭救 展开
展开全部
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询