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语言需要说明的是:
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
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怎么做
😂
#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++;
}
}