帮我看下这个C代码,自己总感觉写的太麻烦了,能否变的简便点
功能:输入2个字符串,判断第一个字符串是否包含第2个,和出现的位置
代码如下:
#include<stdio.h>
#include<string.h>
void main()
{
char num1[50],num2[20];
int i=0,count=0,k;
char *p;
printf("请输入第1个字符串:");
gets(num1);
printf("\n请输入第2个字符串:");
gets(num2);
k=strlen(num2);
printf("第2个字符长%d\n",k);
while(num1[i]!='\0')
{
p=num2;
if(num1[i]==*p)
{
count=0;
for(int j=0;j<k;j++)
{ if(num1[i]==*p)
{
count++;
i++;
p++;
}
else
break;
}
if(count==k)
printf("在第%d位出现\n",i-k+1);
}
else
i++;
}
}
參考答案:用strstr函数:
char* p = strstr(num1, num2);
if(p == NULL)
//没出现
else
i = p - num1;//(i为出现的位置,基0)