C语言初学,字符替换

哪里出了问题?... 哪里出了问题? 展开
 我来答
WMYUOM
2019-05-19 · TA获得超过350个赞
知道小有建树答主
回答量:435
采纳率:78%
帮助的人:209万
展开全部

主函数的名字错了。字母顺序反了。

字符串是用数组存储的。你的str变量定义错了,应该是char str[100];

函数调用的写法也是错的。调用函数只写函数名和参数名。而且要写在最后一个printf语句前面,等你输入完成了才能调用函数。

strchange(str,c1,c2);

函数声明则要写在main函数的前面,不是里面。

scanf();后要跟一句getchar();取走一个回车或空格字符,否则下一句scanf无法接收到你输入的字符。

修改后可执行的完整代码如下

#include <stdio.h>
char*strchange(char*str,char c1,char c2);
main() {
 char c1,c2,str[100]; 
 printf("请输入字符串:");
 scanf("%s",str);
 getchar();
 printf("请输入要替换的字符:");
 scanf("%c",&c1);
 getchar();
 printf("请输入被替换为的字符:");
 scanf("%c",&c2);
 strchange(str,c1,c2);
 printf("替换后的字符串为:%s",str);
}
char*strchange(char*str,char c1,char c2){
 while(*str){
  if(*str==c1){
   *str=c2;
  }
  str++;
 }
 return str;
}

更多追问追答
追问
你好
我想问一下*str==c1 是拿str中的字符一一跟c1对照是吗?
匿名用户
2019-05-19
展开全部
  1. 字符串的类型定义有问题,不应该为char类型,应该改是 char *str;

  2. 你的函数没有调用,应该在最后打印前,将上面输入的参数作为参数,通过函数调用,获得最后的替换之后的字符串!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

2019-05-19 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
第二行,是main,不是mian
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乘承揽百
2019-05-19 · TA获得超过339个赞
知道小有建树答主
回答量:514
采纳率:56%
帮助的人:188万
展开全部
戏没毛病,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式