游客 Signup | Login
中文 | En

2598 - C二级辅导-统计字符

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

Input

Output

Examples

Input

a 1,

Output

1
1
1
1

Solution C

#include <stdio.h>

int isCharacter(char *p) {
    if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z')) {
        return 1;
    }else {
        return 0;
    }
}

int isSpace(char *p) {
    if (*p == 0x20) {
        return 1;
    }else {
        return 0;
    }
}

int isNumber(char *p) {
    if (*p >= 0x30 && *p <= 0x39) {
        return 1;
    }else {
        return 0;
    }
}

int main() {
    char ch;
    int n_ch, n_sp, n_num, n_other;
    n_ch = n_sp = n_num = n_other = 0;
    while ((ch = getchar()) != '\n') {
        if (isCharacter(&ch)) {
            n_ch ++;
        }else if (isSpace(&ch)) {
            n_sp ++;
        }else if (isNumber(&ch)) {
            n_num ++;
        }else {
            n_other ++;
        }
    }
    printf("%d\n%d\n%d\n%d\n", n_ch, n_sp, n_num, n_other);
    return 0;
}

Solution C++

#include <stdio.h>
#include <string.h>
char a[100000];
int main()
{
	int f,b,c,d;
	while(gets(a))
	{
		f=b=c=d=0;
		for(int i=0;i<strlen(a);i++)
		{
			if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
			{
				f++;
			}
			else if(a[i]==' ')
			b++;
			else if((a[i]>='1'&&a[i]<='9')||a[i]=='0')
			c++;
			else
			d++;
		}
		printf("%d\n%d\n%d\n%d\n",f,b,c,d);
}
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题