描述
输入三个字符串a,b和c,将a中b的第一次出现替换为c。
输入
输入三行,每行一个字符串,字符串长度不超过255。
输出
如果b有出现在a中,输出替换后的字符串,否则输出原串a。
输入样例
abcdefgh
cde
Xiaolan
输出样例
abXiaolanfgh
写法一
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[101],b[101],c[101];
int i,j,flag,kk;
while(~scanf("%s%s%s",a,b,c))
{
int la=strlen(a);
int lb=strlen(b);
int lc=strlen(c);
for(i=0;i<la;i++)
{
j=0;
flag=0;
while(a[i+j]==b[j])
{
j++;
if(j==lb)
{
kk=i;
flag=1;
break;
}
}
if(flag) break;
}
for(i=0;i<kk;i++)
printf("%c",a[i]);
for(i=0;i<lc;i++)
printf("%c",c[i]);
for(i=kk+lb;i<la;i++)
printf("%c",a[i]);
printf("\n");
}
}
写法二
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int f(char a[110],char b[110])
{
int i,j;
for(i=0;i<strlen(a);i++)
{
j=0;
while(a[i+j]==b[j])
{
j++;
if(j==strlen(b))
{
return i;
}
}
}
}
int main()
{
char a[110],b[110],c[110];
int i,j,kk;
while(~scanf("%s%s%s",a,b,c))
{
int la=strlen(a);
int lb=strlen(b);
int lc=strlen(c);
int point=f(a,b);
for(i=0;i<point;i++)
printf("%c",a[i]);
for(i=0;i<lc;i++)
printf("%c",c[i]);
for(i=point+lb;i<la;i++)
printf("%c",a[i]);
printf("\n");
}
}