c语言中如何在给定的一个字符串中判断是否有另外一个输入的字符串?有什么简单方法吗?

有一道题目,要求输入两行字符串,要求输出在第二个字符串中第一个字符串出现的位数。下面是我的代码。
#include<stdio.h>
#include<string.h>
int main()
{
char sen[4500],str[120],str1[120];
int i,n,n1,s,f=0,j;
gets(str);
gets(sen);
n=strlen(sen);
n1=strlen(str);
for(i=0;i<n;i++)
{
if(sen[i]==str[0])
{
for(j=0;j<n1;j++,i++)
str1[j]=sen[i];
if(strcmp(str,str1)==0)
{
printf("%d\n",i-n1+1);
f=1;
}
else i=i-n1+2;printf("%d\n",i);
}
if(f==1) break;
}
for(i=0;i<n1;i++)
printf("%c",str1[i]);
printf("\n%d\n",strcmp(str,str1));
return 0;
}
这样做好像很复杂,哪位大侠能简化,或者有更简单的方法?

char arr1[];
char arr2[]; //你的俩字符串
int main()
{
unsigned Arr1Len = strlen(arr1); //字符串1的长度
unsigned i = 0,j = 0,count = 0;
for(i;i<Arr1Len;i++) //根据1的长度决定循环次数
{
/*循环对比,找到就推出循环并且计数加一*/
while(arr2[j++]!='\0')
{
if(arr1[i]==arr2[j])
{
count++;
j=0;
break;
}
}
}
printf("出现次数为%d\n",count);

}
大体的思路,没编译过
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-24
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
相似回答