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

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

题目输入

题目输出

输入/输出样例

输入格式

a 1,

输出格式

1
1
1
1

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;
}

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;
}