具有大写和小写转换的字符串

时间:2016-02-27 23:59:04

标签: c++ string

以下代码确保我们接受一个字符串,它只是通过将字符串转换为小写来打印字符串中的大写字母。代码如何确保这一点?该字符串可以如下。输入字符串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');

1 个答案:

答案 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