展开全部
主函数的名字错了。字母顺序反了。
字符串是用数组存储的。你的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
展开全部
字符串的类型定义有问题,不应该为char类型,应该改是 char *str;
你的函数没有调用,应该在最后打印前,将上面输入的参数作为参数,通过函数调用,获得最后的替换之后的字符串!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二行,是main,不是mian
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
戏没毛病,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询