华电C语言期末考试真题

分享一道今年C语言考试真题。由于本题需要考虑的情况较多很多小伙伴们在考试过程中都栽在了本题上。


题目:在字符串str1中找出str2并用str3替换str1中的str2(str1,str2,str3是程序在调试过程中系统给出的)

#include<stdio.h>
#include<string.h>
void f(char str1[],char str2[],char str3[]);
int main()
{
	char str1[80],str2[80],str3[80];
	gets(str1);
	gets(str2);
	gets(str3);
	f(str1,str2,str3);
	puts(str1);	
} 
void f(char str1[],char str2[],char str3[])
{
	int i,j,k,m,n,t,l,l1;
	for(i=0;str1[i];i++)
	{
		k=i;
		t=i;
		for(j=0;str1[k] && str2[j] &&  str1[k]==str2[j];k++,j++)
		  ;
  		if(str2[j]=='\0')
  		{
		  	if((strlen(str2)<(strlen(str3))))
		  	{
 				l=strlen(str3)-strlen(str2);
			    l1=strlen(str1);
                for(m=strlen(str1);m>=k;m--)
	  			{
			  		str1[m+l]=str1[m];
			  	}
			  	for(n=0;str3[n];n++)
			  	{
	  				str1[t++]=str3[n];
	  			}
	  		}
	  		else
	  		{
		  		for(n=0;str3[n];n++)
		  		{
		  			str1[t++]=str3[n];
		  		}
		  	}
        }
	}
}

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值