菜鸟求教函数声明问题~#include#includeint main(){void print_string(char);void delete_string(char,char);void enter_string(char);char c;char str[80];enter_string(str);printf("enter a char:");scanf("%c",&c);delete_string(str,c);print_string(str
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 15:58:43
![菜鸟求教函数声明问题~#include#includeint main(){void print_string(char);void delete_string(char,char);void enter_string(char);char c;char str[80];enter_string(str);printf(](/uploads/image/z/8894062-46-2.jpg?t=%E8%8F%9C%E9%B8%9F%E6%B1%82%E6%95%99%E5%87%BD%E6%95%B0%E5%A3%B0%E6%98%8E%E9%97%AE%E9%A2%98%7E%23include%23includeint+main%28%29%7Bvoid+print_string%28char%29%3Bvoid+delete_string%28char%2Cchar%29%3Bvoid+enter_string%28char%29%3Bchar+c%3Bchar+str%5B80%5D%3Benter_string%28str%29%3Bprintf%28%22enter+a+char%3A%22%29%3Bscanf%28%22%25c%22%2C%26c%29%3Bdelete_string%28str%2Cc%29%3Bprint_string%28str)
菜鸟求教函数声明问题~#include#includeint main(){void print_string(char);void delete_string(char,char);void enter_string(char);char c;char str[80];enter_string(str);printf("enter a char:");scanf("%c",&c);delete_string(str,c);print_string(str
菜鸟求教函数声明问题~
#include
#include
int main()
{
void print_string(char);
void delete_string(char,char);
void enter_string(char);
char c;
char str[80];
enter_string(str);
printf("enter a char:");
scanf("%c",&c);
delete_string(str,c);
print_string(str);
system("pause");
}
void print_string(char str[])
{
printf("%s",str);
}
void delete_string(char str[],char ch)
delete_string*/
{int i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
}
void enter_string(char str[80])
{printf("enter a strings:");
gets(str);}
我用DEV-C++编译的
void print_string(char);
void delete_string(char,char);
void enter_string(char);
发现主函数前3行的声明中不可以省略参数,为什么 难道因为是数组的原故?
前3行就是声明啊,看清提问,我是说在声明中为什么不可以省略掉函数参数,按DEV-C++的编译必须得这样
void print_string(char str[]);
void delete_string(char str[],char ch);
void enter_string(char str[80]);
如果省略掉参数
enter_string(str);这行报错invalid conversion from `char*' to `char'
initializing argument 1 of `void enter_string(char)'以及下面调用2个函数报类似的错
我记得调用声明是可以省略掉参数的啊
菜鸟求教函数声明问题~#include#includeint main(){void print_string(char);void delete_string(char,char);void enter_string(char);char c;char str[80];enter_string(str);printf("enter a char:");scanf("%c",&c);delete_string(str,c);print_string(str
函数其实也是有作用域的,跟变量是一样的,你得在调用前申明它.
不好意思,没看清楚
你说对了,就是数组的原因
如果你在前面声明成char *或者 char[]就不会有问题了,为什么?
char 是字符型
char *和 char str[]都是字符串
两者不是同类型,如果不是函数重载,编译器自然要报参数无法隐式转换的错误.