char *ch,就是定义一个字符型的指针,来接收指针,在你的程序里就是接收你输入的字符串的首地址。要想返回实参,根据你的目的,应该是各类字符的个数,可以用一个数组实现。
int* sum(char *ch,int sum[4]);用一个长度为4的一维数组来统计各类字符的个数;
同样int* 表示返回一个整形指针;
你应该这样调用sum()函数;p=sum(ch,sum);(当然你之前要,在main()里定义一个整形指针接受sum()的返回值),把sum[4]={0}初始化全部为0,),用p[0],p[1],p[2],p[3]表示
字母,数字,空格和其他字符的个数。
不明白的再问我
函数声明在main的外面,强烈建议直接把函数写在前面省的声明了
加上字符串的头文件string.h。循环直接用strlen获取长度计算,你这样子看起来太傻了。
要返回多个整数的话可以用结构体做返回值,或者用指针(引用)做参数。
char*ch是指针的意思,初学者不行就用全局变量。
返回不了的,函数只能返回一个值。要想返回多个值,必须使用数组或者结构体之类的。数组名做形参的时候会退化成指针,所以在子函数里把数组名当值真是用就好了。至于指针的作用,你还是看书吧,因为你完全没学过,所以我给你说的话你也可能看不懂。
函数中对数组的改变是绝对的,因此,子函数中对数组做的任何改动,主函数中都可以直接使用,不需要在返回什么东西了!*ch就是指向数组ch的指针。