问题:使用C语言把字母转换成大写,不能使用库函数。
这个题目可以考查编程的一些基本素养,例如命名与可读性、函数的使用、非预期输入的处理、简单的算法、使用有意义的表达式而不是magic bumber.
关于代码的正确性:我当时犯错的有用了||而不是&&,没有考虑等于a、z的边界条件,输入非字母时应该原样返回,应计算输入与a的差然后在A加上这个差即可。
经过修改,我的代码如下。更完整更优秀的解答见http://zh.lucida.me/blog/from-wuxia-to-programmer-interview/
#include <stdio.h> char upper (char); int main(){ char input ,output; scanf("%c",&input); output = upper(input); printf("%c",output); return 0; } char upper(char input){ if (‘a‘ <= input&&input >=‘z‘){ return input-‘a‘+‘A‘; } return input; }
时间: 2024-12-13 08:11:46