C语言编程>第十九周 ⑧ 下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的s1所指子串替换成s2所指子串,所形成的新串放在str所指的数据中。

例题:下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的s1所指子串替换成s2所指子串,所形成的新串放在str所指的数据中。在此处,要求s1和s2所指字符串的长度相同。

例如,当s所指字符串中的内容为abcdabfabc,s1所指子串中的内容为ab,s2所指子串中的内容为99时,则在str所指的数组中的内容为abcdabf99c。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。

代码如下:

#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char*s,char*s1,char*s2,char*str)
{
    
    
	char*p,*r,*a;
	strcpy(str,s);
	while(*str)
	{
    
    
		p=str;
		r=s1;
		while(*r)
		if(*r==*p)
		{
    
    
			r++;
			p++;
		}
		else
		{
    
    
			break;
		}
		if(*r=='\0')
			a=str;
		str++;
	}
	r=s2;
	while(*r)
	{
    
    
		*a=*r;
		a++;
		r++;
	}
}
main()
{
    
    
	char s[100],s1[100],s2[100],str[100];
	printf("\nPlease enter string S:");
	scanf("%s",s);
	printf("\nPlease enter substring s1:");
	scanf("%s",s1);
	printf("\nPlease enter substring s2:");
	scanf("%s",s2);
	if(strlen(s1)==strlen(s2))
	{
    
    
		fun(s,s1,s2,str);
		printf("\nThe result is:%s\n",str);
	}
	else
	{
    
    
		printf("\nError:strlen(s1)!=strlen(s2)\n");
	}
}

输出运行窗口如下:
在这里插入图片描述
本周其他练习

C语言程序设计专栏

C语言编程>第十九周 ① 下列给定程序中,函数fun的功能是:将str所指字符串中出现的temp1所指子串全部替换成temp2所指子字符串,所形成的新串放在result所指的数组中。

C语言编程>第十九周 ② 请补充函数,该函数的功能是求一维数组a[N]的平均值,并对所得结果进行四舍五入保留两位小数。

C语言编程>第十九周 ③ 请补充main函数,该函数的功能是:计算四个学生各科的平均分。

C语言编程>第十九周 ④ 下列给定程序中,函数fun的功能是:实现两个整数的交换。

C语言编程>第十九周 ⑤ 请补充main函数,该函数的功能是:输出一个N×N矩阵,要求非对角线上的元素赋值1,对角线元素赋值0。

C语言编程>第十九周 ⑥ 下列给定程序中函数fun的功能是:从低位开始取出长整型变量x中偶数位上的数,依次构成一个新数放在y中。

C语言编程>第十九周 ⑦ 给定程序中,函数fun 的功能是:将形参student所指结构体数组中年龄最小者的数据作为函数值返回,并在main函数中输出。

C语言编程>第十九周 ⑧ 下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的s1所指子串替换成s2所指子串,所形成的新串放在str所指的数据中。

越努力越幸运!
加油,奥力给!!!

猜你喜欢

转载自blog.csdn.net/qq_45385706/article/details/112760059