通常情况下,我们可以使用函数 $toupper()$ 和 $tolower()$ 来实现字母大小写的转化,但在需要常数优化的情况下,这是较慢的。
大小写字符特点
在 $ASCII$ 表中,大写字符与小写字符相差 $32$,我们可以简单的通过加减 $32$ 来实现。
神奇的空格
注意空格' '
这个字符,它的值为 $32$,我们考虑将大小写字符 $xor$ 上空格符,这样不仅大小写转换写法相同,而且利用位运算减小常数。
以上均为神奇的技巧,我也不知道有什么用….
1 |
|
通常情况下,我们可以使用函数 $toupper()$ 和 $tolower()$ 来实现字母大小写的转化,但在需要常数优化的情况下,这是较慢的。
在 $ASCII$ 表中,大写字符与小写字符相差 $32$,我们可以简单的通过加减 $32$ 来实现。
注意空格' '
这个字符,它的值为 $32$,我们考虑将大小写字符 $xor$ 上空格符,这样不仅大小写转换写法相同,而且利用位运算减小常数。
以上均为神奇的技巧,我也不知道有什么用….
1 | #include <bits/stdc++.h> |
Update your browser to view this website correctly. Update my browser now