用c语音写一个全字母句 (pangram) 指包含字母表中全部 26 种英文字母(不区分大小写)的句子,其常被用于展示英文字体的显示效果。 输入多个句子,判断哪些句子是全字母句。 输入格式: 输入数据有多组(数据组数不超过 100),到 EOF 结束。 每组数据包含一行长度不超过 100 的字符串。
时间: 2023-11-27 11:50:14 浏览: 76
以下是用 C 语言编写的代码,可以实现判断输入的句子是否为全字母句:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_pangram(char *str) {
int count[26] = {0}; // 记录每个字母出现的次数
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) { // 判断是否为字母
count[tolower(str[i]) - 'a']++; // 统计该字母出现的次数
}
}
for (int i = 0; i < 26; i++) {
if (count[i] == 0) { // 如果有任何一个字母没有出现过,就不是全字母句
return 0;
}
}
return 1;
}
int main() {
char str[101];
while (fgets(str, 101, stdin) != NULL) { // 逐行读入数据
if (is_pangram(str)) { // 判断是否为全字母句
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
```
该程序使用 `is_pangram` 函数来判断输入的字符串是否为全字母句。该函数先使用一个长度为 26 的数组 `count` 来记录每个字母出现的次数,然后遍历整个字符串,统计每个字母出现的次数,并将字符转换为小写字母。最后再遍历一次 `count` 数组,如果有任何一个字母没有出现过,就说明该字符串不是全字母句,返回 0;否则返回 1。主函数则使用 `fgets` 函数逐行读入数据,并调用 `is_pangram` 函数判断是否为全字母句,然后输出结果。