这个C/C++代码如何工作?我理解了大部分但不是下面指定的部分:
c2= (c1>='a' && c1<='z') ? ('A'+c1-'a'):c1
Run Code Online (Sandbox Code Playgroud)
特别是这部分:
('A'+c1-'a')
Run Code Online (Sandbox Code Playgroud)
这部分代码在做什么?
无论c1和c2有型char.
代码将小写字符转换为大写字母.如果字符不是小写,则返回原始字符.
表达式('A'+c1-'a')执行转换.c1-a将在字母表中给出字符的从0开始的位置.通过将此值添加到A您将获得大写等效c1.
更新:如果c1是'b'那么表达式c1-'a'将给出1,这是字母表中'b'的从0开始的位置'添加1到'A'然后将给出'B'