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

有一道题目,要求输入两行字符串,要求输出在第二个字符串中第一个字符串出现的位数。下面是我的代码。#include<stdio.h>#include<string.h>in... 有一道题目,要求输入两行字符串,要求输出在第二个字符串中第一个字符串出现的位数。下面是我的代码。
#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;
}
这样做好像很复杂,哪位大侠能简化,或者有更简单的方法?
展开
 我来答
10...6@qq.com
2012-12-23 · 超过17用户采纳过TA的回答
知道答主
回答量:148
采纳率:0%
帮助的人:58.9万
展开全部
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);

}
大体的思路,没编译过
mi188586163
2012-12-24 · TA获得超过117个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:175万
展开全部
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式