C语言 编写一个函数,由实参传来一个字符串,统计字符串中字母,数字,空格和其他字符的个数,在主函数

C语言
编写一个函数,由实参传来一个字符串,统计字符串中字母,数字,空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
要求1.在程序中使用全局变量
2.不用全局变量

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-04

1.

#include<stdio.h>

void count(char *str);

int letters=0,space=0,digit=0,others=0;

int main(void)
{
char str[100];
printf("Input a string:\n");
gets(str);
count(str);
printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others);
return 0;
}

void count(char *str)
{
while(*str!='\0')
{
if(*str>='a'&&*str<='z'||*str>='A'&&*str<='Z')
letters++;
else if(*str==' ')
space++;
else if(*str>='0'&&*str<='9')
digit++;
else
others++;
str++;
}
}

2.

#include<stdio.h>

void count(char *str);

int main(void)
{
char str[100];
printf("Input a string:\n");
gets(str);
count(str);
return 0;
}

void count(char *str)
{
int letters=0,space=0,digit=0,others=0;
while(*str!='\0')
{
if(*str>='a'&&*str<='z'||*str>='A'&&*str<='Z')
letters++;
else if(*str==' ')
space++;
else if(*str>='0'&&*str<='9')
digit++;
else
others++;
str++;
}
printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others);
}

追问

2怎么做

😂

追答

发了2个代码,一个全局变量,一个不是全局变量

追问

哦看到了

C语言
输入10个学生5门课的成绩,分别使用函数实现下列功能
1.计算每个学生平均分
2.计算每门课平均分
3.找出所有50个分数中最高的分数所对应的学生和课程
4.找出有课程不及格的学生序号及其各门课成绩
5.找出单科成绩最高的学生序号并输出成绩
6.将学生按总分由高到低输出

麻烦看一下这个

本回答被提问者采纳
第2个回答  2019-07-04
全局变量
#include<stdio.h>
int l=0,n=0,s=0,o=0;
void count(char str[ ]);
int main()
{
char a[100];
printf("输入字符串\n");
gets (a);
count(a);
printf("字母有:%d个\n数字有:%d个\n空格有:%d个\n其他字符有:%d个\n",l,n,s,o);
}
void count(char str[])
{
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==' ')
s++;
else if((str[i]<='z'&&str[i]>='a')||(str[i]<='Z'&&str[i]>='A'))
l++;
else if(str[i]<='9'&&str[i]>='0') n++;
else o++;
}
}
相似回答