DAVID马兰:现在,让我们完善 这个程序远一点。 那岂不是很好,如果能TOUPPER 大写字母,如果小写,并且 如果不是小写,通 它通过改变? 换句话说,我能代替 我用的if-else块 单调用ToUpper的? 好了,要回答这个问题, 我想最好的咨询 文档转换大写。 要做到这一点,让我打开一个较大的终端 gedit的窗口外面, 然后输入man转换大写,从而 标志着我想开了 所谓的手册页。 功能转换大写。 当按下ENTER键,我看到 屏幕赞一个。 现在发现,他们似乎有 结合对转换大写的文档 鞋面采用,对于tolower的。 但不管。 故事大纲下你会发现, 我提醒说,事实上,使用这种 功能,我必须包括 头文件ctype.h中。 下面,你看到的是TOUPPER 声明为返回一个int和 接受一个int,这是一个有点 好奇,因为到目前为止,我已经 只有操纵字符。 不过没关系。 事实证明,这仅仅是一个 惯例,我们仍然可以用c为 虽然它是一个char,即使 它声明为一个int。 现在,在这里的描述,我看到 转换大写字母转换成C至 大写如果可能的话。 并根据返回值,我看到 返回的值是的 转换后的字母,或c,如果 转化率是不可能的。 并有敏锐的洞察力 我一直在寻找。 如果c是不是,事实上,一个小写 信中,似乎将TOUPPER 只需沿着不变传递。 现在让我们回到我的代码。 而现在让我们去掉的全部 这个条件块和替换它, 很简单,用printf的%C逗号 转换大写s支架的我关闭括号 接近括号分号,从而 标志着我想替换掉%C 用的资本化 s中第i个字母,如果第i个 字母s中的小写。 或者即使它不是,它会 加改变地通过。 现在,让我们用编译这个程序 让capitalize2,并与运行 capitalize2,再次键入hello。 而事实上,我们回来大写。 让我们再次键入大卫。 而且,也同样是大写的。