《C程序设计语言》练习 2-10

练习 2-10
重新编写将大写字母转换为小写字母的函数 lower,并用条件表达式替代其
中的 if-else 结构。



#include <stdio.h>

void lower(char str[]);

main()
{
    char str[] = "Hello World!";
    lower(str);
    printf("%s\n", str);
}

void lower(char str[])
{
    int i, c;
    for (i = 0; (c = str[i]) != '\0'; i++)
        str[i] = (str[i] >= 'A' && str[i] <= 'Z') ? (str[i] - 'A' + 'a') : str[i];

}
/*
        这个没什么好说的
        在ASCII码中:
        'A'的值是65
        'B'的值是66
        'C'的值是67
        'Z'的值是90

        'a'的值是97
        'b'的值是98
        'c'的值是99
        'z'的值是122
        -----------------------------------
        if 
            str[i] = 'A'
        when
            str[i] - 'A' = 0
            0 + 97 = 97
            97 = 'a'
        -----------------------------------
        if
            str[i] = 'Z'
        when
            str[i] - 'A' = 25
            25 + 97 = 122
            122 = 'z'
    */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值