鱼C论坛

 找回密码
 立即注册
查看: 1565|回复: 2

[已解决]这个题要怎么做啊

[复制链接]
发表于 2023-10-26 17:14:48 | 显示全部楼层 |阅读模式

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

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

x
        代码填空
要求输入一个字符串S和两个字符A和B,补足程序中缺失的代码部分,使运行程序时可以将字符串S中的字符A替换为字符B。
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         char s[50],a,b,*p;
  5.         gets(s);
  6.         scanf("%c %c",&a,&b);
  7.         for()
  8.                 if()
  9.                
  10.         puts(s);
  11. }
复制代码

最佳答案
2023-10-26 17:14:56
题目要求输入一个字符串S和两个字符A和B,然后将字符串S中的字符A替换为字符B。我们需要填写代码部分来完成这个任务。

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char s[50], a, b, *p;
  5.     gets(s);
  6.     scanf("%c %c", &a, &b);
  7.     for (p = s; *p != '\0'; p++)
  8.     {
  9.         if (*p == a)
  10.         {
  11.             *p = b;
  12.         }
  13.     }
  14.     puts(s);
  15. }
复制代码


解释:

1. 首先,我们定义了一个字符数组  s ,用来存储输入的字符串。
2. 然后,我们使用  gets(s)  函数来获取输入的字符串。
3. 接下来,我们使用  scanf("%c %c", &a, &b)  来获取输入的两个字符A和B。
4. 然后,我们使用一个循环来遍历字符串  s  中的每个字符。我们使用指针  p  来指向当前遍历的字符。
5. 在循环中,我们使用  if (*p == a)  来判断当前字符是否等于字符A。如果是,就将当前字符替换为字符B,即  *p = b 。
6. 最后,我们使用  puts(s)  来输出替换完成后的字符串。

这样,代码就完成了将字符串S中的字符A替换为字符B的任务。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-26 17:14:56 | 显示全部楼层    本楼为最佳答案   
题目要求输入一个字符串S和两个字符A和B,然后将字符串S中的字符A替换为字符B。我们需要填写代码部分来完成这个任务。

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char s[50], a, b, *p;
  5.     gets(s);
  6.     scanf("%c %c", &a, &b);
  7.     for (p = s; *p != '\0'; p++)
  8.     {
  9.         if (*p == a)
  10.         {
  11.             *p = b;
  12.         }
  13.     }
  14.     puts(s);
  15. }
复制代码


解释:

1. 首先,我们定义了一个字符数组  s ,用来存储输入的字符串。
2. 然后,我们使用  gets(s)  函数来获取输入的字符串。
3. 接下来,我们使用  scanf("%c %c", &a, &b)  来获取输入的两个字符A和B。
4. 然后,我们使用一个循环来遍历字符串  s  中的每个字符。我们使用指针  p  来指向当前遍历的字符。
5. 在循环中,我们使用  if (*p == a)  来判断当前字符是否等于字符A。如果是,就将当前字符替换为字符B,即  *p = b 。
6. 最后,我们使用  puts(s)  来输出替换完成后的字符串。

这样,代码就完成了将字符串S中的字符A替换为字符B的任务。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-26 17:15:03 | 显示全部楼层
你可以按照以下方式填写代码空缺部分,以实现将字符串S中的字符A替换为字符B的功能:

  1. #include <stdio.h>

  2. int main() {
  3.     char s[50], a, b, *p;
  4.     gets(s);
  5.     scanf("%c %c", &a, &b);

  6.     p = s;  // 将指针p指向字符串s的起始位置

  7.     while (*p != '\0') {  // 循环遍历字符串s中的每个字符
  8.         if (*p == a) {  // 如果当前字符等于字符A
  9.             *p = b;  // 将当前字符替换为字符B
  10.         }
  11.         p++;  // 移动指针p到下一个字符
  12.     }

  13.     puts(s);  // 输出替换后的字符串s

  14.     return 0;
  15. }
复制代码


在这段代码中,我们使用了一个指针p来遍历字符串s中的每个字符。通过比较*p和字符A来判断是否需要进行替换。如果相等,则将*p替换为字符B。最后输出替换后的字符串s

请注意,gets()函数已经被废弃不推荐使用,因为它存在安全隐患。建议改用更安全的输入函数如fgets()

另外,尽量避免使用固定大小的字符数组,并确保输入字符串不会超过其长度。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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