您的位置:首页 > 编程语言 > C语言/C++

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

2017-12-29 11:16 141 查看
练习 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'
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息