- 一. 概念引入
- 二. 字母大小转换
- 三. 课后习题
- 3.1 转换成小写字母
- 3.2 检测大写字母
- 四. 总结
在C语言中,对于每一个字符有其对应的ASCLL值,但为什么要有这个表呢?
信息在计算机内是使用二进制的形式表示,我们深入到计算机的最底层,其信息的表示方式只有0和1,这种表示方法人是很难理解的,如果我们屏幕上看到的只有0和1,有几人能看明白呢?如果计算机只能识别0和1,那我们所能理解的信息又如何才能让计算机明白呢?
所以,为了方便人与计算机之间能够进行信息的交换,人们编制了一个统一的信息交换码——ASCLL码表,全称是“美国信息交换标准码。
通过上面的ASCLL我们可以得知,A ~ Z对应的十进制值为65 ~ 90,而a ~ z对应的值为97 ~ 122,而每个大写字母与其对应的小写字母的值相差32,所以我们可以通过加减32,进行大小写的转化。
int main(){ char ch; while (~scanf("%c", &ch)){ getchar(); ch += 32; putchar(ch); putchar('n'); } }三. 课后习题 3.1 转换成小写字母
709. 转换成小写字母
我们只需将所有大写字母转化即可。
代码如下:
char * toLowerCase(char * s){ for(int i = 0; i < strlen(s); i++){ if(s[i] >= 'A' && s[i] <= 'Z'){ s[i] += 32; } } return s; }3.2 检测大写字母
520. 检测大写字母
分析:
不符合规则的单词有:
- 首字母为大写,后面的字母也有一部分大写。
- 首字母为小写,后面出现有大写字母。
注意如果是单个字符,不管大小写都符合规则,并且如果全为大写或全为小写,也符合规则。
代码如下:
bool detectCapitalUse(char * word){ int len = strlen(word); if(len == 1){ return true; } int n = 0; for(int i = 0; i < len; i++){ if(word[i] >= 'A' && word[i] <= 'Z'){ n++; } } if(word[0] >= 'A' && word[0] <= 'Z' && n > 1 && n < len){ return false; } else if(word[0] >= 'a' && word[0] <= 'z' && n > 0){ return false; } return true; }四. 总结
字符的大小写转化,我们只需牢记其ASCLL值得范围,以及大小写之间的值差为32.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)