如何在C++中按字母顺序递减字符值
How to decrement a character value alphabetically in C++
有没有办法按字母顺序递减C++字符值?
例如,更改包含以下内容的变量 'b'
到值'a'
或包含以下内容的变量 'd'
值'c'
?
我尝试查看字符序列,但找不到任何有用的东西。
字符本质上是一个字节整数(尽管编译器之间的表示形式可能有所不同(。虽然有许多编码将整数值映射到字符,但几乎所有编码都按连续的数字顺序将'a'
映射到'z'
字符。因此,如果要将字符串"aaab"
更改为"aaaa"
,则可以执行以下操作:
char letters [4] = {'a','a','a','b'};
letters[3]--;
字母字符是 ASCII 字符表的一部分。 65 是大写字母 A,32 位之后的字母 97 是小写字母 A。 字母 B 到 Z 和 b 到 z 分别是 66 到 90 和 98 到 122( 最初的计算机程序员在 ASCII 图表中将其相隔 32 位而不是 26(字母表中的字母(,因为可以进行位操作以轻松地从小写更改为大写(反之亦然(,以及忽略大小写(通过忽略 32 位 - 0010 0000(。
这样,例如,ASCII 图表上表示字母 T 的第 84 个字符用位 0101 0100 表示。 小写 t 是 116,即 0111 0100。 忽略大小写时,将忽略 32 位中的 1(从右起第 6 位(。 您可以看到大写和小写的所有其他位完全相同。 这使得它对每个人都更方便,对计算机来说更优化。
要递减,只需将字符转换为其 ASCII 字符值,减 1,然后将该整数转换回 ASCII 值。 当你有一个"A"(或"a"(时要小心,因为这是一个特例。
相关文章:
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 按顺序声明的字符数组重叠
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 如何在C++中反转文本文件中字符的顺序?
- 按字母顺序打印存储在字符数组中的信息
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- C++ MDC final-在字符类型的数组结构中按字母顺序对记录中的名称进行排序
- 按字母顺序排序字符数组,然后按长度排序
- 有没有办法在不使用任何迭代的情况下将字符的字母顺序排列
- 检索字符串的第一个字符,并在C++中按字母顺序进行比较
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- 有关忽略字符顺序的字符串哈希函数的建议
- 了解从TranslateMessage()发送的字符消息顺序
- 按Alpha顺序对2D字符数组进行排序
- 在数组中使用常量字符 * 来读取顺序文件
- 反转字符数组中单词的顺序
- 使用不带Unicode字节顺序标记的iconv进行字符转换
- 如何在C++中按字母顺序递减字符值
- 按字符顺序将字符串从映射转换为二维矢量
- 获取字符顺序总和的最快方法