问题及代码
/*
完成人:贾如杉
题目描述
一个字符串s、一个字符串t,判断t是否是s的子串,若是则将s中所有出现了t串的地方换成指定的字符或字符串p,若不是,则输出NO
输入
一个字符串s、一个字符串t,要换的字符或字符串
输出
输出修改后的s串
样例输入
asdfasdf
132
saf
样例输出
NO
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n1,n2,n3,i,k=0,j1,j2,j3,key=0;
char s[80]="a",t[80]="a",p[80]="a",x[80]="a";
gets(s);
gets(t);
gets(p);
n1=strlen(s);
n2=strlen(t);
n3=strlen(p);
for(j1=0;s[j1]!='\0';j1++)
{
x[j1]=s[j1];
}
x[j1]='\0';
for(i=0;i<=n1+n2+n3; i++)
{
for(j1=0;x[j1]!='\0';j1++)
{
s[j1]=x[j1];
}
s[j1]='\0';
for(j1=0,k=0; j1<n2; j1++)
{
if(s[i+j1]==t[j1])
{
k++;
}
}
if(k==n2)
{
for(j2=0; j2<i; j2++)
{
x[j2]=s[j2];
}
for(j2=i,j3=0; j3<n3; j2++,j3++)
{
x[j2]=p[j3];
}
for(j2=i+n3,j3=i+n2; s[j3]!='\0'; j3++,j2++)
{
x[j2]=s[j3];
}
key=1;
}
}
if(key==1)
{
puts(x);
}
else
{
printf("NO");
}
return 0;
}
运行结果
知识点总结
数组的简单运用