#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