如何在C ++中按字母顺序递减字符值

时间:2014-08-27 07:06:03

标签: c++

有没有办法在C ++中按字母顺序递减字符值?

例如,更改包含的变量 'b'到值'a'或包含的变量 'd'到值'c'

我试着查看字符序列但找不到任何有用的东西。

2 个答案:

答案 0 :(得分:3)

字符本质上是一个字节整数(尽管编码器之间的表示可能不同)。虽然有许多编码将整数值映射到字符,但几乎所有编码都以连续的数字顺序将'a'映射到'z'个字符。因此,如果您想将字符串"aaab"更改为"aaaa",您可以执行以下操作:

char letters [4] = {'a','a','a','b'};
letters[3]--;

答案 1 :(得分:0)

字母字符是ASCII字符表的一部分。 65是大写字母A,32位后面是97,是小写字母A.字母B到Z和b到z分别是66到90和98到122)原始的计算机程序员使它在32位分开ASCII图表而不是26(字母表中的字母),因为位操作可以轻松地从小写改为大写(反之亦然),以及忽略大小写(忽略32位 - 0010 0000)。 / p>

这样,例如,ASCII图表上的第84个字符(代表字母T)用位0101 0100表示​​。小写字母t是116,即0111 0100.忽略大小写时,32中的1位(右起第6个位置)被忽略。您可以看到所有其他位对于大写和小写完全相同。这使得每个人都更方便,更适合计算机。

要递减,只需将字符转换为ASCII字符值,递减1,然后取整数并将其转换回ASCII值。当你有一个' A'虽然(或' a'),因为这是一个特例。