游客 Signup | Login
中文 | En

1439 - C语言-字符统计2

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

Input

一行字符串

Output

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

Examples

Input

!@#$%^QWERT    1234567

Output

5 7 4 6 

Solution C

#include<stdio.h>
#include<string.h>
int main()
{
	char str[10000];
	int b,i,z,s,k,q;
	z=s=k=q=0;
	gets(str);
	b=strlen(str);
	for(i=0;i<b;i++)
	{
		if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122)z++;
		else
			if(str[i]>=48&&str[i]<=57)s++;
		else
			if(str[i]==32)k++;
		else
			q++;
	}
	printf("%d %d %d %d",z,s,k,q);
	return 0;
}

Solution C++

#include "stdio.h"
#include "string.h"
int num(char str[])
{
  int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]>='0'&&str[i]<='9')
		sum++;
	return sum;
}
int chart(char str[])
{
 int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]>='A'&&str[i]<='Z'||(str[i]>='a'&&str[i]<='z'))
		sum++;
	return sum;
}
int kongge(char str[])
{
 int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]==' ')
		sum++;
	return sum;
}
int qita(char str[])
{
	int len;
 len=strlen(str);
return len-kongge(str)-chart(str)-num(str);
}
int main(int argc, char* argv[])
{
	char str[100];
	while(gets(str))
	{
	 printf("%d %d %d %d \n",chart(str),num(str),kongge(str),qita(str));
	}
	return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题