鱼C论坛

 找回密码
 立即注册
查看: 1503|回复: 17

[已解决]C语言程序填空题!

[复制链接]
发表于 2021-1-3 00:09:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 以下程序中函数replace的功能是:将字符串s中所有属于字符串s1中的字符都用s2中的对应位置的字符替换。假如s为“ABCBA”,s1为“AC”,s2为“ac”,则调用replace函数后,字符串s的内容将变换为“aBcBa”。试完善程序以达到要求的功能。
#include <stdio.h>
#define MAX 20
void replace(char *s, char *s1, char *s2)
{  char *p;
   for(; *s; s++)
   {  p=s1;
      while(*p&&     (1)   ) p++;   
      if(*p)  *s=      (2)      ;        
   }
}
void main( )
{  char s[MAX]="ABCBA",s1[MAX]="AC", s2[MAX]= "ac";
      replace(s, s1, s2);            
      printf("The string of s is:");
      printf("%s\n", s);
}

帮忙填一填空
最佳答案
2021-1-3 08:55:21
(1) *p != *s  (2) *(s2+ p- s1)
网上直接搜就好了https://wenku.baidu.com/view/49fa8605864769eae009581b6bd97f192279bf62.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-3 08:55:21 | 显示全部楼层    本楼为最佳答案   
(1) *p != *s  (2) *(s2+ p- s1)
网上直接搜就好了https://wenku.baidu.com/view/49fa8605864769eae009581b6bd97f192279bf62.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 09:50:05 | 显示全部楼层
心驰神往 发表于 2021-1-3 08:55
(1) *p != *s  (2) *(s2+ p- s1)
网上直接搜就好了https://wenku.baidu.com/view/49fa8605864769eae009581 ...

编译器显示有错?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 09:59:43 | 显示全部楼层

我看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 10:14:48 | 显示全部楼层

(2)少加了一个括号*(s2+ (p- s1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 10:22:34 | 显示全部楼层
心驰神往 发表于 2021-1-3 10:14
(2)少加了一个括号*(s2+ (p- s1))

运行的结果不符题意
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 10:25:35 | 显示全部楼层
肚子饿了233 发表于 2021-1-3 10:22
运行的结果不符题意

结果不是要aBcBa吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 10:31:17 | 显示全部楼层
肚子饿了233 发表于 2021-1-3 10:22
运行的结果不符题意

你这个题不就是要将s中的大写AC变成小写ac
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 10:44:16 | 显示全部楼层
心驰神往 发表于 2021-1-3 10:31
你这个题不就是要将s中的大写AC变成小写ac

你是对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 10:51:15 | 显示全部楼层

可以的话给个最佳吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 11:10:31 | 显示全部楼层
本帖最后由 风过无痕1989 于 2021-1-3 12:09 编辑
  1. {
  2.     p = s1;                       // 将s1的地址赋给指针p
  3.     while (*p && *p != *s)        // *p != '0'&&  *p != *s 时循环
  4.         p++;                      // 否则,p 指向下一个字符
  5.     if (*p)                       // *p != '0'
  6.         *s = *((p - s1) + s2);    // 用 s2 中的字符置换 s 中的对等字符
  7. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 11:23:17 | 显示全部楼层
昨晚就看到这个求助帖子了,本以为我今天能够达成心愿 ---- 技术值达到 500,就在三个月内不再回答任何问题了,专心学习 《windows 程序设计》及《网络编程》。刚才一看只有 499,还差一个,就回答此帖子,并非我前两天说不回答你帖子的理由又改变了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 12:03:21 | 显示全部楼层
我的 500 达到了,楼上的答案是正确的,我修改后,也不希望得到这个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 12:05:10 | 显示全部楼层

谢谢回复哈,但是我得告诉你一个残忍的真相:你的06代码是错的!不符题意。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 12:05:45 | 显示全部楼层
风过无痕1989 发表于 2021-1-3 11:23
昨晚就看到这个求助帖子了,本以为我今天能够达成心愿 ---- 技术值达到 500,就在三个月内不再回答任何问题 ...

啧啧啧,都懂都懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 12:09:15 | 显示全部楼层
风过无痕1989 发表于 2021-1-3 12:03
我的 500 达到了,楼上的答案是正确的,我修改后,也不希望得到这个最佳

最佳答案别人早就给了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 19:08:12 | 显示全部楼层
心驰神往 发表于 2021-1-3 10:14
(2)少加了一个括号*(s2+ (p- s1))

大神,*(s2+(p-s1))  这是啥意思呀?为啥中间不打括号编译器无法编译?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-3 22:05:45 | 显示全部楼层
肚子饿了233 发表于 2021-1-3 19:08
大神,*(s2+(p-s1))  这是啥意思呀?为啥中间不打括号编译器无法编译?

作用是找到用s2对应字符替换,具体为什么这么写的话我还不知道。最近刚开始学。你可以看下这个https://blog.csdn.net/weixin_33834910/article/details/93844968
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 23:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表