字符串字符统计—C语言

时间: 1ms        内存:128M

描述:


编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

输入:


一行字符串

输出:

统计数据,4个数字,空格分开。

示例输入:

!@#$%^QWERT    1234567

示例输出:

5 7 4 6 

提示:

参考答案(内存最优[1092]):


#include<stdio.h> 
void tongji(char str[],int a[]);
int main()
{
    char str[100];
    int i,a[4];
    gets(str);
    tongji(str,a);
    for(i=0; i<4; i++)
		printf("%d ",a[i]);
    printf("\n");
    return 0;
}
void tongji(char *str,int a[])  //将统计的字符串中字母、数字、空格和其它字符的个数分别放到数组a中
{
   int i;
   for(i=0;i<4;i++)  //在统计之前先将统计值设为0
	   a[i]=0;
   for(i=0;str[i]!='\0';i++)
   {
     if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')  //字母
		 a[0]++;   //字母个数增1
     else if(str[i]>='0'&&str[i]<='9')  //数字字符
		     a[1]++;  //数字个数增1
	      else if(str[i]==' ')  //空格
		         a[2]++;  //空格个数增1
		       else     //其它字符
				   a[3]++;  //其他字符个数增1
   }
}

参考答案(时间最优[0]):


#include<stdio.h> 
void tongji(char str[],int a[]);
int main()
{
    char str[100];
    int i,a[4];
    gets(str);
    tongji(str,a);
    for(i=0; i<4; i++)
		printf("%d ",a[i]);
    printf("\n");
    return 0;
}
void tongji(char *str,int a[])  //将统计的字符串中字母、数字、空格和其它字符的个数分别放到数组a中
{
   int i;
   for(i=0;i<4;i++)  //在统计之前先将统计值设为0
	   a[i]=0;
   for(i=0;str[i]!='\0';i++)
   {
     if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')  //字母
		 a[0]++;   //字母个数增1
     else if(str[i]>='0'&&str[i]<='9')  //数字字符
		     a[1]++;  //数字个数增1
	      else if(str[i]==' ')  //空格
		         a[2]++;  //空格个数增1
		       else     //其它字符
				   a[3]++;  //其他字符个数增1
   }
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。