分享一道今年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];
}
}
}
}
}