如何计算一个文本字符串中有多少个不同的字母?
答案 0 :(得分:2)
const char *str = "foo bar baz quirk qux";
bool found[1 << CHAR_BIT] = { 0 };
int n_distinct = 0;
for (const char *p = str; *p; p++) {
unsigned char ch = *p;
if (!found[ch]) {
n_distinct++;
found[ch] = 1;
}
}
printf("Distinct characters: %d\n", n_distinct);
答案 1 :(得分:1)
创建一个名为uniqueLetters的char数组和一个名为currentLetter的char。创建一个for循环,将currentLetter逐个设置为字符串中的每个字符。在我描述的第一个循环中嵌套另一个for循环,检查currentLetter是否在uniqueLetters数组中。如果它不在uniqueLetters数组中,则将其添加到uniqueLetters数组中。最后计算uniqueLetters数组的长度。
要记住的一件事是's'和'S'被认为是不同的角色。如果要将它们计为相同的字母,则需要添加其他逻辑来检查uniqueLetter数组中是否存在小写或大写字母。
希望这有帮助!