以下代码确保我们接受一个字符串,它只是通过将字符串转换为小写来打印字符串中的大写字母。代码如何确保这一点?该字符串可以如下。输入字符串r可以是以下任何一个:
Kira
hates
is
he
L
for(size_t j = 0; j < r.size(); j++)
if(r[j] <= 'Z')
r[j] = (char) (r[j] + 'a' - 'A');
答案 0 :(得分:1)
首先,if(r[j] <= 'Z')
检查字符值是否小于'z'
或小数为90。如果你查看ascii表,你会知道字母A到Z的小数是65到90.因此,这之间的任何值都是大写字母。
所以在Kira
的示例中,它检查K
,其值为75. if(75 <= 90)
将评估为真。
下一步是将字母更改为小写。因此,ascii表中的小写字母a和大写字母A相隔32或使用'a' - 'A'
,其值为32.因为大写字母首先出现在表格中,所以要在大写字母中添加32以获得小写字母。
所以小写是从97到122.所以当K为75 + 32 = 107时。当你在acii表上查看十进制时k
。