c语言字符串替换,s1里面的abc替换成XYZ 并放到s2里面

#include<stdio.h>
int fun(char *s1,char *s2,char *str1,char *str2)
{ 
char *t0,*t1,*t2,*x,*y;
x=s1,y=s2;
while(/*空*/ )
{
for(t0=s1,t1=str1;(*t1!='\0'&&/*空*/  );t0++,t1++)
if(/*空*/) *s2++=*s1++;
else
{
for(t1=str2;*t1!='\O';)
*s2++=/*空*/;
s1=t0;
}
}
/*空*/ 
}
int main(){
        
char s1[]="abedef ababcd abab.",s2[25];
fun(s1,s2,"abc","XYZ");
printf("%s\n",s2);
}

请问填空那几个怎么填呢,程序要求是:s1里面的abc替换成XYZ 并放到s2里面

修改了一下,效果是一样的。

#include<stdio.h>
#include<string.h>
int fun(char *s1,char *s2,char *str1,char *str2)
{ 
	char *t0,*t1,*t2,*x,*y;
	int i,j;
	int len = strlen(s1);
	puts(s1);
	for(i=0;i<len;i++){
	
		if(s1[i]==str1[0] && s1[i+1]==str1[1] && s1[i+2]==str1[2]){
			s2[i++]=str2[0];
			s2[i++]=str2[1];
			s2[i]=str2[2];
		}else{
			s2[i]=s1[i];
		}
	
	}
	puts(s2);
	
}
int main(){
        
	char s1[]="abedef ababcd abab.\0",s2[25];
	fun(s1,s2,"abc","XYZ");
	//printf("%s\n",s2);
}

 

这个有点难度的,赖老师加油。

这道题可以跟着 c++源码做。

char * __cdecl strcpy(char * dst, const char * src)
{
        char * cp = dst;

        while( *cp++ = *src++ )
                ;               /* Copy src over dst */

        return( dst );
}

其实就是将这段源码 用通俗的语言写出来。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y