📅  最后修改于: 2023-12-03 15:14:25.996000             🧑  作者: Mango
本文将介绍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
这个结果与示例中的预期输出相同,说明我们的解决方案是正确的。
希望这个解决方案可以帮助到你,如果有任何问题,请随时提问。