📜  用于检查字符串是否为 Pangram 的 C++ 程序(1)

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

用于检查字符串是否为 Pangram 的 C++ 程序

Pangram是指包含字母表中所有字母至少一次的句子或短语。本文将提供一个用于检查给定字符串是否为Pangram的C++程序。

程序实现
#include <iostream>
#include <string>
#include <unordered_set>

bool isPangram(const std::string& str) {
    std::unordered_set<char> letters;

    for (char c : str) {
        if (isalpha(c))
            letters.insert(tolower(c)); // 将字母转换为小写并插入到集合中
    }

    return letters.size() == 26; // 如果集合大小为26,表示包含了字母表中的所有字母
}

int main() {
    std::string sentence;
    std::cout << "请输入一句话或短语:";
    std::getline(std::cin, sentence);

    if (isPangram(sentence))
        std::cout << "是Pangram。" << std::endl;
    else
        std::cout << "不是Pangram。" << std::endl;

    return 0;
}
解释说明

该程序通过使用unordered_set容器来记录给定字符串中出现的字母。算法如下:

  1. 创建一个空的unordered_set集合用于存储字母。
  2. 遍历输入的字符串,将其中的字母转换为小写并插入到集合中。
  3. 最后,检查集合的大小是否等于26,如果是则返回true,表示输入字符串为Pangram,否则返回false,表示不是Pangram。
使用方法
  1. 在C++编译器中创建一个新项目,例如在命令行中使用g++编译器g++ pangram.cpp -o pangram
  2. 运行生成的可执行文件,然后按照提示输入一句话或短语。
  3. 程序将会输出字符串是否为Pangram。
注意事项
  • 输入字符串不区分大小写,因此可以是包含大写字母或小写字母的句子。
  • 输入字符串中除了字母以外的字符将被忽略并不计入判断。
  • 该程序仅适用于ASCII字符集中的字母,不适用于非英语字符。

希望以上介绍对您有所帮助!