输入3个字符串1,2,3。先看1中是否包含2,若有,则将1中2的部分换成3。
若无,则将3直接接在1后。
现在遇到的问题是没办法做到1中的2换成3
最终分别输出改变后的三个字符串(其实只有1改变)
比如:输入:abcdk d ef
则输出:abcefk d ef
再如:输入:abcd efg hij
则输出:abcdhij efg hij
望指点🙏
使用的是c语言
关于#字符串#的问题,如何解决?(语言-c语言)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
滴水不穿石 2022-11-18 12:05关注

//仅供参考,谢谢!
#include <stdio.h> #include<stdlib.h> #include<string.h> void rp(char *s1,char *s2,char *s3,int index) { char s[1024]; int n1=strlen(s1); int n2=strlen(s2); int n3=strlen(s3); char *p=NULL; strcpy(s,s1); memcpy(s1+index,s3,n3); strcat(s1+index+n3, s+index+n2); } int main(int argc, char** argv){ char s1[1024],s2[512],s3[512]; scanf("%s%s%s",s1,s2,s3); getchar(); int index; char *p=strstr(s1,s2); index=p-s1; if(p) { rp(s1,s2,s3,index); printf("%s %s %s\n",s1,s2,s3); } else { strcat(s1,s3); printf("%s %s %s\n",s1,s2,s3); } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用