系列文章目录
已经很细节了。尽力了。
如何用C语言实现输入一串字符,判断是否为位全字母句。
前言
1.首先我们需要知道什么是全字母句。
全字母句 指包含英语字母表中每个字母至少一次的句子。我们这里不区别字母大小写。
如示例 :
例1:
输入:sentence = “thequickbrownfoxjumpsoverthelazydog”
输出:true
例2:
输入:sentence = “kjugbvcaaaa”
输出:false
2.使用到getchar()这是一个输入字符串函数。
一、主题思路
1.定义了一个int a[26]赋值为0,表示26个大小写字母。
如a【0】表示a或A ,a【1】表示b或B。
2.定义char = c;让c代替getchar进入if判断之中。
3.用if嵌套语句判断每次字符是否为大小写字母。
4.如果c为字母表中的一位
则 a[c - ‘a’] = 1; 解释:a的ASCII码为97,如果此时c中字符为a
则 a[97- 97] = 1 == 》 a【0】=1 a【0】表示a或A , 1相当于出现
5.最后一个for循环
如果其中一个a【】=0意味着对应字母没出现;使用break跳出,
如果b=25,意味着从0到25,一共26个字母全都已经检验。
二、使用步骤
代码如下(示例):
#include <stdio.h>
int main() {
char c;
int a[26] = {0}, b; //1.定义了一个int a[26]赋值为0,表示26个大小写字母。
printf("请输入一串字符:");
do {
c = getchar(); //2.定义char = c;让c代替getchar进入if判断之中。
if (c >= 'a' && c <= 'z') {
a[c - 'a'] = 1; // 3.用if嵌套语句判断每次字符是否为大小写字母。
} else if (c >= 'A' && c <= 'Z') { //4.见上述主题思路(4)
a[c - 'A'] = 1;
}
} while (c != '\n'); //以回车作为出口
for (b = 0; b < 26; b++) { //依次检测字母是否都出现。
if (a[b] == 0) {
printf("这不是一个全字母语句。");
break; //如果其中有字母未出现,程序输出之后,跳出循环
} else if (b == 25) //如果b==25,说明字母均已全部出现。
printf("这是一个全字母语句。");
}
return 0;
}