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

2025-04-14 07:56:48
推荐回答(2个)
回答1:

#include

#include

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语言

回答2:

你统计的结果没有通参数返回,且显示语句也没有数据,修改如下:

#include
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;
}}