如何在不使用lower case
,isdigit
,isupper
,toupper
,isalnum
之类的函数或无需加或减数字32的情况下将isalpha
字符更改为大写字符我也应该在while循环中使用它。
例如:如果我在.exe中键入字母b,它应该发送
我收到一条消息,说“记住专有名词以大写字母开头
并且您应该输入“ B”
最佳答案
如果您的平台设置了ASCII字符集,则可以使用XOR来实现。
char c = 'a';
c ^= 32; // c will now contain 'A'
由于选择了ASCII值的方式,这是可能的。英文字母的小写和大写字母的十进制值之间的差异正好是32。
如果您的平台设置了EBCDIC字符集,则可以执行
char c = 'a';
c ^= 64; // c will now contain 'A'
由于上面提到的相同原因,它起作用,仅这次差异为64,而不是32。