【c语言】对char型变量的思考

    科技2026-06-09  1

    今天在写c语言作业的时候,做到一个这样的题目

    输入一个字符,如果输入字符是小写字母(a-z),则程序以大写字母打印; 如果输入字符是大写字母(A-Z),则程序以小写字母打印。 如果字符是数字(0-9),程序将打印其值的平方。

    拿到题目的时候,愣了一下,因为%c和%d不可能同时用上 但是随后我发现我忽略了一个重要的事实: 数字0~9在ASCII码中同样也是字符

    那么问题便迎刃而解了

    char zifu; scanf("%c",&zifu);

    值得一提的是之后的平方处理 如果简单地进行对输入的内容平方,则实际上平方的是ASCII码,无法得到实际的答案 譬如:当输入9,输出的则为3249,也就是572

    那么我的处理方法则是通过对应关系,进行简单地加减,将ASCII码重新先转化为原数字,再进行计算

    代码如下

    if(zifu>=48&&zifu<=57) {zifu=zifu-48; printf("%d",zifu*zifu);}

    用这样的方式,就可以解决这一道题目了

    Processed: 0.016, SQL: 9