📜  C测验– 110 |问题4(1)

📅  最后修改于: 2023-12-03 15:14:25.996000             🧑  作者: Mango

C测试– 110 | 问题4

简介

本文将介绍C语言测试中的第110个问题,问题4。这个问题将测试你在C语言中处理字符串的能力。

问题描述如下:

给定一个字符串,编写一个函数来计算字符串中出现的不同字符的数量。请注意,字符串中的字母区分大小写,因此'A'和'a'被认为是不同的字符。返回字符串中不同字符的数量。

示例:

输入: "Hello World"

输出: 8

解决方案

我将给出一个简单的解决方案来解决这个问题。

#include <stdio.h>

int countDifferentChars(char* str) {
    int count = 0;
    int chars[256] = {0}; // 声明一个大小为256的整型数组,并将所有元素初始化为0

    while (*str != '\0') {
        if (chars[*str] == 0) {
            count++;
            chars[*str] = 1;
        }
        str++;
    }

    return count;
}

int main() {
    char str[] = "Hello World";
    int result = countDifferentChars(str);
    printf("The number of different characters in the string is: %d\n", result);
    return 0;
}
解决方案说明

我们首先声明一个大小为256的整型数组chars,用于记录每个字符是否已经出现过。数组chars的下标是字符的ASCII码值,因此可以容纳所有的ASCII字符。我们将数组中所有的元素初始化为0。

然后,我们使用一个循环遍历给定的字符串中的每个字符。对于每个字符,我们检查chars数组中对应位置的值。如果该值为0,则说明该字符未出现过,我们将出现的字符的数量增加1,并且将chars数组中对应位置的值设置为1,表示该字符已经出现过。

最后,我们返回不同字符的数量。

main函数中,我们定义一个字符串str,并将其作为参数传递给countDifferentChars函数。然后,我们将返回的结果打印出来。

运行程序,输出将是:

The number of different characters in the string is: 8

这个结果与示例中的预期输出相同,说明我们的解决方案是正确的。

希望这个解决方案可以帮助到你,如果有任何问题,请随时提问。