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

输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置结果为3),要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。

代码如下可以实现:(已测试)
#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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-08
#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

本回答被网友采纳
第2个回答  2013-12-28
大概这样:
char *p =strstr(str1, str2);
int pos =p-str1;追问

有整个的吗?

本回答被提问者采纳
相似回答