中易网

C语言字符替换

答案:3  悬赏:0  
解决时间 2021-12-21 20:41
编写一个字符替换函数rep(char *s,char*s1,char *s2),实现将已知的字符串所有属于字符串s1的字符全部用S2中的对应字符代替.
e.g:字符串s,s1,s2分别如下:
char s[]=''ABCABC'',s1[]='AC',s2[]=''xy''调用函数后 s的内容变成xByxBy 大家帮帮我啊
最佳答案
char *replace(char *source, char *sub, char *rep)
{
char *result;




char *pc1, *pc2, *pc3;
int isource, isub, irep;
isub = strlen(sub);
irep = strlen(rep);
isource= strlen(source);
if(NULL==*sub)
return strdup(source);


result = (char *)malloc(((irep>isub)?(float)strlen(source)/isub*irep+1:isource)*sizeof(char));
pc1 = result;
while(*source != NULL)
{

pc2 = source;
pc3 = sub;

while(*pc2==*pc3 && *pc3 != NULL && *pc2 != NULL)
pc2++, pc3;


if(NULL==*pc3)
{
pc3 = rep;

while(*pc3 != NULL)
*pc1 = *pc3;
pc2--;
source = pc2;

}

*pc1 = *source;

source;
}
*pc1 = NULL;
result;

}
全部回答
用两个for循环, 对s中中每一个字符,与s1中的所有字符比较,然后作一个if判断,如果存在相等情况,就替换就行啦
#include <stdio.h> void match(char s[ ],char c1, char c2); int main() {   char s[]="hello world";   char c1,c2;   printf("请输入要被替换的字母:");   scanf("%c",&c1);   getchar();   printf("请输入替换的字母:");   scanf("%c",&c2);   match(s,c1,c2);      puts(s); } void match (char s[ ],char c1, char c2) { int i=0; while(s[i]!='\0') {  if(s[i]==c1)  s[i]=c2;  i++; } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
iphone6plus像ipad一样旋转
和一家培训公司签订就业合同,保证培训内容可
我希望我们走的很远,但是我跟不上你的脚步,你
如何分解工作目标答案
新乡市现在有没有必胜客?有的话地址在哪?谢
社区金融服务会给我们的生活带来什么变化?
苹果电脑的管理员密码忘记了网上说的command
咸阳到周至薰衣草庄园怎么乘车
vivo520l一般用多长时间
我感觉做人挺好的,这是一种什么感觉?
网线分线盒怎么接
小孩自行车睬脚这不灵敏怎么回事?
石家庄哪里可以做液氮冷冻手术
綏綏的意思是什么?綏綏的释义是什么啊?
夫妻离婚房子归一方,另一方买房打税是怎么样
推荐资讯
QQ怎么表白了说?
SAMSUNGK9F1G08U0D能烧录这种芯片的编程器
如何让golang array 添加元素
水培植物里养一条清道夫需要放鱼食?
螭魚的意思是什么?螭魚的释义是什么啊?
潍坊个人缴纳社保是什么时候缴纳
高碑店市民政局婚姻登记处地址有知道的么?有
兰州市红古区人民检察院地址在什么地方,想过
第一次申请招商银行信用卡,回复已持卡客户,什
湖南化工职业技术学院单招没交预录费还能去读
完美风暴 电影
微信申诉回执单号什么意思
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?