列表

详情


HJ10. 字符个数统计

描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。

数据范围:

输入描述

输入一行没有空格的字符串。

输出描述

输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。

示例1

输入:

abc

输出:

3

示例2

输入:

aaa

输出:

1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-11-23

#include <stdio.h>

int main(void){
    char buf[512];
    char exist[128];
    int cnt;
    while(gets(buf) != NULL){
        char *p = buf;
        cnt = 0;
        memset(exist, 0, sizeof(char) * 128);
        for(; *p; ++p){
            if(!exist[*p]){
                exist[*p] = 1;
                ++cnt;
            }
        }
        printf("%d\n", cnt);
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-07

#include<stdio.h>
int main()
{
    int i,num=0,len;
    char a[1000];
    char b[128]={0};
    gets(a);
    len=strlen(a);
    for(i=0;i<len;i++)
    {
        if(a[i]>=0 && a[i]<=127)
            b[a[i]]++;
    }
    for(i=0;i<127;i++)
    {
        if(b[i]>0)
            num++;
    }
    printf("%d",num);
    return 0;
}

上一题