《C语言入门100例》(第8例) 字符大小写

《C语言入门100例》(第8例) 字符大小写,第1张

《C语言入门100例》(第8例) 字符大小写

文章目录
  • 一. 概念引入
  • 二. 字母大小转换
  • 三. 课后习题
    • 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. 检测大写字母

分析:
不符合规则的单词有:

  1. 首字母为大写,后面的字母也有一部分大写。
  2. 首字母为小写,后面出现有大写字母。

注意如果是单个字符,不管大小写都符合规则,并且如果全为大写或全为小写,也符合规则。
代码如下:

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.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5432537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存