我被赋予了一个任务,通过使用宏来将小写字符转换为大写。问题是我从未被引入宏。我只知道它的名字#define名称大小..请任何人都可以指导我这个问题
答案 0 :(得分:6)
上面的答案也会改变不是字母的东西。也许...
#define LOWERTOUPPER(x) (('a' <= (x) && (x) <= 'z') ? ((x - 'a') + 'A') : (x))
虽然如果将其作为
调用会产生麻烦LOWERTOUPPER(*p++);
也不适合EBCDIC字符集。所有这一切都证明了这种事情是一个坏主意。
答案 1 :(得分:5)
最简单的方法是:
#define LOWERTOUPPER(x) ((x - 'a') + 'A')
然后,你将使用如下函数:
character = LOWERTOUPPER('z');
这会导致字符变量保持'Z'。
答案 2 :(得分:-1)
阅读维基百科有关C preprocessor - Macro definition and expansion的文章(或通过使用您最喜欢的搜索引擎搜索c macro
可以找到的任何其他文档/ C教程)。