【C/C++】统计字符串中的字母个数

题干:从键盘上输入一个字符串,假定字符串的长度小于80,试分别统计出每一种英文字母(大,小写等同看待)的个数并输出出来

下面是一个示例代码,用于从键盘输入一个字符串并统计每种英文字母(大写和小写)的个数:

#include 
#include 
#include 

const int MAX_LENGTH = 80;

int main() {
  char input[MAX_LENGTH];

  std::cout << "请输入一个字符串(长度小于80):";
  std::cin.getline(input, MAX_LENGTH);

  int counts[26] = {0};  // 用于存储每种英文字母的个数,下标对应字母的ASCII码值减去 'a' 的ASCII码值

  // 统计每种英文字母的个数
  int length = std::strlen(input);
  for (int i = 0; i < length; i++) {
    char c = std::tolower(input[i]);  // 转换为小写字母进行统计
    if (std::isalpha(c)) {
      counts[c - 'a']++;
    }
  }

  // 输出每种英文字母的个数
  for (int i = 0; i < 26; i++) {
    if (counts[i] > 0) {
      char letter = 'a' + i;  // 计算字母的ASCII码值
      std::cout << "字母 " << letter << " 的个数为 " << counts[i] << std::endl;
    }
  }

  return 0;
}

该代码使用字符数组 input 来接收从键盘输入的字符串,然后使用循环遍历每个字符,并统计每种英文字母的个数。

统计时将所有字母转换为小写字母进行计数,以便将大写字母和小写字母看作同一种字母。最后,通过循环输出每种英文字母的个数。

isalpha函数说明

isalpha 是 C++ 标准库 中的一个函数,用于判断一个字符是否是字母。它接受一个字符作为参数,并返回一个非零值(通常为真)如果该字符是字母(大写或小写),否则返回零(通常为假)。

isalpha 函数的原型如下:

int isalpha(int ch);

其中 ch 是一个整数表示一个字符的 ASCII 码值。函数会判断该字符是否是字母,如果是字母则返回非零值,否则返回零。

需要注意的是,isalpha 函数只适用于 ASCII 字符集,对于其他字符集的字符可能会产生不确定的结果。因此,在使用 isalpha 函数之前,通常会将字符转换为标准的 ASCII 字符。

在上面提供的示例代码中,isalpha 函数用于判断输入的字符是否为字母,以便统计每种英文字母的个数。通过将字符转换为小写字母后进行判断,可以将大写字母和小写字母都视为同一种字母。

你可能感兴趣的:(C/C++,c语言,c++,开发语言)