编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数。
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++;}
}
为什么结果都是零啊
好了不用了解决了 展开
#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、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
#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;
}}