如何使用位掩码将小写ASCII字符转换为大写(不允许使用-32)?
我不是要求解决我的作业,只是需要一些提示。
谢谢。
我不是要求解决我的作业,只是需要一些提示。
谢谢。
你说“(不允许-32)”,我猜你知道小写字符和大写字符之间的差距是32。现在把32转换成二进制表示,只有一个位被设置为1。然后,想出一种使用位掩码来切换该位的方法。
考虑小写和大写之间的差异(0x20),然后将适当的掩码应用于您的值
XOR可从大写转换为小写,也可从小写转换为大写
对于实际的代码,你应该使用库函数,例如toupper()或towupper(),或者使用能够处理Unicode复杂性的其他工具。
把+-32
转换成位运算。可以用2^x
来表示32
。
由于您的规定不够明确,因此您的作业并不完整。C标准对源代码或执行字符集的特定编码一无所知,尤其是它不会假设任何与ASCII相似的东西。
因此,wnoise是正确的,处理这些问题的唯一标准方法是使用为此提供的预定义函数和宏。