C语言:编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数。
#include<stdio.h>intmain(){charch[100]="";voidsum(char*ch);gets(ch);sum(ch);puts(ch);...
#include <stdio.h>
int main()
{
char ch[100] = "";
void sum(char* ch);
gets(ch);
sum(ch);
puts(ch);
return 0;
}
void sum(char *ch)
{
int character=0,number=0,others=0;
int i = 0;
while(ch[i]!='\0')
{
if((ch[i]>='A'&&ch[i]<='Z')||(ch[i]>='a'&&ch[i]<='z'))character++;
else if(ch[i]>='0'&&ch[i]<='9')number++;
else others++;
i++;
}
printf("character:%d\tnumber:%d\tothers:%d\n",character,number,others);
}
刚看到了忘了问,如果要返回实参输出那应该怎么改,char*ch是指针么,刚准备学,可以的话说一下用法谢谢 展开
int main()
{
char ch[100] = "";
void sum(char* ch);
gets(ch);
sum(ch);
puts(ch);
return 0;
}
void sum(char *ch)
{
int character=0,number=0,others=0;
int i = 0;
while(ch[i]!='\0')
{
if((ch[i]>='A'&&ch[i]<='Z')||(ch[i]>='a'&&ch[i]<='z'))character++;
else if(ch[i]>='0'&&ch[i]<='9')number++;
else others++;
i++;
}
printf("character:%d\tnumber:%d\tothers:%d\n",character,number,others);
}
刚看到了忘了问,如果要返回实参输出那应该怎么改,char*ch是指针么,刚准备学,可以的话说一下用法谢谢 展开
4个回答
展开全部
函数声明在main的外面,强烈建议直接把函数写在前面省的声明了
加上字符串的头文件string.h。循环直接用strlen获取长度计算,你这样子看起来太傻了。
要返回多个整数的话可以用结构体做返回值,或者用指针(引用)做参数。
char*ch是指针的意思,初学者不行就用全局变量。
加上字符串的头文件string.h。循环直接用strlen获取长度计算,你这样子看起来太傻了。
要返回多个整数的话可以用结构体做返回值,或者用指针(引用)做参数。
char*ch是指针的意思,初学者不行就用全局变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回不了的,函数只能返回一个值。要想返回多个值,必须使用数组或者结构体之类的。数组名做形参的时候会退化成指针,所以在子函数里把数组名当值真是用就好了。至于指针的作用,你还是看书吧,因为你完全没学过,所以我给你说的话你也可能看不懂。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数中对数组的改变是绝对的,因此,子函数中对数组做的任何改动,主函数中都可以直接使用,不需要在返回什么东西了!*ch就是指向数组ch的指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询