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

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

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

Pangram是指包含字母表中所有字母至少一次的句子或字符串。在这里,我们将介绍一个用于检查字符串是否为Pangram的C++程序。你可以使用该程序来验证输入的字符串是否为Pangram。

程序实现

下面是一个简单的C++程序示例,可用于检查字符串是否为Pangram:

#include <iostream>
#include <string>
#include <algorithm>

bool isPangram(std::string str) {
    // 将字符串转换为小写字母
    transform(str.begin(), str.end(), str.begin(), ::tolower);
    
    // 构建一个标记数组,用于跟踪每个字母的出现
    bool mark[26] = { false };
    
    // 遍历字符串中的每个字符
    for (char c : str) {
        // 仅处理字母字符
        if (isalpha(c)) {
            // 设置相应字母的标记为true
            mark[c - 'a'] = true;
        }
    }
    
    // 检查每个字母的标记是否为true
    for (bool m : mark) {
        if (!m) {
            return false;  // 存在未出现的字母,不是Pangram
        }
    }
    
    return true;  // 所有字母都出现过,是Pangram
}

int main() {
    std::string input;
    std::cout << "请输入一个字符串:";
    std::getline(std::cin, input);
    
    if (isPangram(input)) {
        std::cout << "输入的字符串是Pangram";
    } else {
        std::cout << "输入的字符串不是Pangram";
    }
    
    return 0;
}

该程序首先将输入的字符串转换为小写字母,然后使用一个标记数组mark来跟踪每个字母的出现情况。程序遍历字符串中的每个字符,对每个字母字符,将相应字母的标记设置为true。最后,程序检查标记数组,如果存在未出现的字母,则说明字符串不是Pangram。否则,所有字母都出现过,字符串是Pangram。

使用示例

以下是使用上述程序的示例交互输出:

请输入一个字符串:The quick brown fox jumps over the lazy dog
输入的字符串是Pangram
请输入一个字符串:This is not a pangram
输入的字符串不是Pangram

以上示例分别显示了输入字符串是否为Pangram。

希望这个C++程序可以帮助你检查输入的字符串是否是Pangram。你可以根据自己的需求进行扩展和修改。