华为机试 - 10 字符个数统计

字符个数统计

http://www.nowcoder.com/questionTerminal/eb94f6a5b2ba49c6ac72d40b5ce95f50

题目描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。

输入描述:

输入N个字符,字符在ACSII码范围内。

输出描述:

输出范围在(0~127)字符的个数。

示例1
输入

abc

输出

3

解题思路

1 如何字符重复个数统计?

如同上一题“提取不重复的整数”,统计整数中数字的重复次数,我们采用了数组。

同样,本题统计0~127字符的出现次数,也可以采用数组来存储。

2 c语言实现

#include <stdio.h>

int count(char* s)
{
    int num = 0,a[128] = {0};
    int len = strlen(s);
    for (int i = 0; i < len; i++) {
        if (s[i] >= 0 && s[i] <= 127) {
            a[s[i]]++; //a[s[i]]代表s[i]字符出现的次数
        }
    }

    for (int i = 0; i < 128; i++) {
        if (a[i]) {//a[i]!=0代表该字符出现过
            num++;
        }
    }
    return num;
}

int main()
{
    char s[100] = {'\0'};
    scanf("%s",s);

    printf("%d\n",count(s));
    return 0;
}
全部评论
你这个代码都不完善,后面好多案例过不了
点赞 回复
分享
发布于 2021-08-13 11:00
给数组s分配的内存空间少了,可以多分配点
点赞 回复
分享
发布于 2021-08-27 15:54
滴滴
校招火热招聘中
官网直投

相关推荐

1 4 评论
分享
牛客网
牛客企业服务