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,以及位置结果值。
展开
展开全部
代码如下可以实现:(已测试)
#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;
}
#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;
}
展开全部
#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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大概这样:
char *p =strstr(str1, str2);
int pos =p-str1;
char *p =strstr(str1, str2);
int pos =p-str1;
追问
有整个的吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询