#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k=0,m,n;
char str1[100],str2[100],str[100];
char *p=str2,*q=str;
fgets(str1,100,stdin);
fgets(str2,100,stdin);
m=strlen(str1);
n=strlen(str2);
printf("m=%d,n=%d\n",m,n);
for(i=0;i<=m-n;i++)
{
for(j=0;j<n;j++)
str[j]=str1[i+j];
if(!strcmp(str,str2))
{
k=i+1;
i=m-n;
}
}
if(k)
printf("str2包含在str1中,其出现的位置在第%d个字符处\n",k);
else
printf("str2没有包含在str1中\n" );
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k=0,m,n;
char str1[100]="abcdexyde";
char str2[100]="de";
char str[100];
char *p=str1,*q=str2;
//fgets(str1,100,stdin);
//fgets(str2,100,stdin);
m=strlen(str1);
n=strlen(str2);
if(m<n) k=0;
else
{
for(i=0;i<m-n;i++)
{
if(*(p+i)==*q)
{
for(j=0;j<n;j++)
{
if(*(p+i+j)!=(*q+j))
break;
}
if(j==n)
{
k=i+1;
break;
}
}
}
}
if(k)
printf("str2包含在str1中,其出现的位置在第%d个字符处\n",k);
else
printf("str2没有包含在str1中\n" );
return 0;
}
供参考:
#include<stdio.h>
int main()
{
int i,j,k=0,m,n;
char str1[100],str2[100];
//char *p=str2,*q=str;
fgets(str1,100,stdin);
fgets(str2,100,stdin);
m=strlen(str1)-1;
n=strlen(str2)-1;
printf("m=%d,n=%d\n",m,n);
for(i=0;i<m;i++)
{
k=i;
for(j=0;j<n;j++) {
if(str2[j]==str1[k++]) continue;
else break;
}
k=0;
if(j==n)
{
k=i+1;
break;
}
}
if(k)
printf("str2包含在str1中,其出现的位置在第%d个字符处\n",k);
else
printf("str2没有包含在str1中\n" );
return 0;
}