//5.写一个函数:对一个字符串,分别打印出其中英文字母、空格、数字和其它字符的个数
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <malloc.h>
int * getCharacter(char str[])
{
int i;
int size=strlen(str);
int *num;
num=(int*)malloc(4*sizeof(int));
for (i=0;i<4;i++)
{
num[i]=0; //英文字母、空格、数字和其它字符的个数的初始值均为0
}
for (i=0;i<size;i++)
{
if(str[i]>='0' && str[i]<='9')//判断数组中数字的个数,num[0]加1
num[0]++;
else if (str[i]==' '||str[i]=='\n')//判断空格和回车的个数若是,num[1]加1
num[1]++;
else if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')//字母
num[2]++;
else
num[3]++;
}
return num;
}
int main () {
char str[]="abd 123 王王点击分单?";
int * p;
p=getCharacter(str);
printf("数字的个数=%d\n 空格或回车的个数=%d\n 字母的个数=%d\n 其他字符的个数=%d\n",p[0],p[1],p[2],p[3]);
free(p);
return 0;
}