blob: 4f42b06952af154650bfc619dfc7cec9ccb12be1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <iostream>
int main() {
const unsigned LINE_SIZE = 1024;
char line[LINE_SIZE];
std::cin.getline(line, LINE_SIZE);
// char е 8 битово, което означава че има 2^^8 = 256
// на брой различни възможни стойности.
// Знаем, че всяка буква всъщност е едно число, затова
// можем директно да го използваме като индекс.
bool encountered[256] = { 0 };
for (unsigned i = 0; line[i] != '\0'; i++)
encountered[line[i]] = true;
// Всички малки букви са отместени с 32 спрямо главните.
// Тоест, главна буква + 32 = съответната малка буква
bool isPangram = true;
for (char ch = 'A'; isPangram && ch <= 'Z'; ch++)
isPangram = encountered[ch] || encountered[ch + 32];
if (isPangram)
std::cout << "Pangram" << std::endl;
else
std::cout << "Not a pangram" << std::endl;
return 0;
}
|