编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数。

#include<stdio.h>voidfac(charstr[]);voidmain(){chara[100];printf("请输入一个字符串:");gets(a)... #include <stdio.h>
void fac(char str[]);
void main()
{
char a[100];
printf("请输入一个字符串:");
gets(a);
fac(a);
printf("大写字母个数:%d\n");
printf("小写字母个数:%d\n");
printf("数字:%d\n");
printf("空格:%d\n");
printf("其他字符:%d\n");
}
void fac(char str[])
{
int i,D=0,d=0,math=0,space=0,others=0;
for(i=0;str[i]!='\0';i++)
{if(str[i]>='a'&&str[i]<='z')
D++;
else if(str[i]>='A'&&str[i]<='Z')
d++;
else if(str[i]>='0'&&str[i]<='9')
math++;
else if(str[i]==' ')
space++;
else
others++;}
}
为什么结果都是零啊
好了不用了解决了
展开
 我来答
iiiiiiiipl
2019-05-23 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.7万
展开全部

#include <stdio.h>

#include <string.h>

int letter,number,blank,other;

void count(char str[])

{

int i;

for(i=0;str[i]!='\0';i++)

{

if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))

letter++;

else if(str[i]>='0'&&str[i]<='9')

number++;

else if(str[i]==' ')

blank++;

else

other++;

}

int main()

{

char a[80];

gets(a);

puts(a);

strcat(a,"\0");

letter=0;

number=0;

blank=0;

other=0;

count(a);

printf("\n%5d,%5d,%5d,%5d\n",letter,number,blank,other);  

return 0;

}

扩展资料:

C语言需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。 

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。 

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-c语言

爱说真话的小丑
推荐于2017-12-16 · TA获得超过943个赞
知道小有建树答主
回答量:866
采纳率:0%
帮助的人:275万
展开全部
你统计的结果没有通参数返回,且显示语句也没有数据,修改如下:

#include <stdio.h>
void fac(char str[], int *dx, int *xx, int *sz, int *kg, int *qt);
void main()
{char a[100];
int dx, xx, sz, kg, qt;
printf("请输入一个字符串:");
gets(a);
fac(a, &dx, &xx, &sz, &kg, &qt);
printf("大写字母个数:%d\n", dx);
printf("小写字母个数:%d\n", xx);
printf("数字:%d\n", sz);
printf("空格:%d\n",kg);
printf("其他字符:%d\n", qt);
}

void fac(char str[], int *dx, int *xx, int *sz, int *kg, int *qt)
{
int i, D = 0, d = 0, math = 0, space = 0, others = 0;
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] >= 'a'&&str[i] <= 'z')
D++;
else if (str[i] >= 'A'&&str[i] <= 'Z')
d++;
else if (str[i] >= '0'&&str[i] <= '9')
math++;
else if (str[i] == ' ')
space++;
else
others++;
}
*dx = d; *xx = D; *sz = math; *kg = space; qt = others;
}}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式