c语言中Vc环境下 输入两个字符串str1和str2,计算并输出str2在str1中出现的位置

输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置... 输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置结果为3),要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。 展开
 我来答
寂世孤雄
2013-12-29 · TA获得超过2671个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:261万
展开全部
代码如下可以实现:(已测试)
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>

int main(){
char a[40],b[40];
printf("Input a string\n");
scanf("%s",a);
printf("Input a string\n");
scanf("%s",b);
int i=0,N=0;

for(i=0;a[i];i++){
int j=0;
while(b[j]){
if(a[j+i]==b[j])
j++;
else
break;
}
if(b[j]==0)
printf("%d",i);
}
system("pause");
return 0;
}
沧海雄风2009
推荐于2018-03-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2835万
展开全部
#include <stdio.h>

int main()
{
char str[20] ={0};
char str2[20]={0};
int i=0,j=0,flag=0,pos=-1;
gets(str);
gets(str2);
for (i=0;str[i]!='\0';i++)
{
if (str[i]==str2[0])
{
flag = 0;
for (j=1;str2[j]!='\0' && str[i+j]!='\0';j++)
{
if (str[i+j]!=str2[j])
{
flag=1;
break;
}
}
if (!flag)
{
pos = i;
break;
}
}
}
if (pos!=-1)
{
printf("str[%s]\nstr2[%s]\n[%d]\n",str,str2,pos);
}else
{
printf("not  find\n");
}

return 0;
}
program
ram
str[program]
str2[ram]
[4]
Press any key to continue
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毓听云006
2013-12-28 · TA获得超过582个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:307万
展开全部
大概这样:
char *p =strstr(str1, str2);
int pos =p-str1;
追问
有整个的吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式