大神帮忙总c语言写一段程序啊: 输入一个小写英文字符,先输出它的ASCII码值,再进行大小写转换

大神帮忙总c语言写一段程序啊:
输入一个小写英文字符,先输出它的ASCII码值,再进行大小写转换输出。

#include<stdio.h>

int main()
{
    char c;
    printf("请输入一个小写字母:\n");
    scanf("%c",&c);
    printf("它的ASCII码值是%d\n",c);
    printf("它的大写形式是%c\n",c-'a'+'A');
    return 0;
}

 

追问

能加个注释么,菜鸟表示看不太懂

追答#include<stdio.h>//导入标准输入输出文件
 
int main()//main函数
{
    char c;//定义一个字符变量c
    printf("请输入一个小写字母:\n");//提示用户输入
    scanf("%c",&c);//输入一个字符,存入变量c
    printf("它的ASCII码值是%d\n",c);//输出ASCII码值
    printf("它的大写形式是%c\n",c-'a'+'A');//输出大写形式
    return 0;//退出程序
}

追问

倒数第二行c-'a'+'A'是为什么啊

追答

A-Z的ASII是连续的
a-z也是连续的。
c-'a'是c相对于‘a’的偏移量再加上‘A'就是c的大写形式

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-02
#include <stdio.h>

int main()
{
char ch;
ch = getchar();
printf("ch's ascii code is %d \n", ch);
ch -= 32;
printf("ch is %c \n", ch);
return 0;
}追问

能加个注释么,菜鸟表示看不太懂

第2个回答  2015-04-02
#include <stdio.h>
#include <stdlib.h>

int main(void){

char ch;

scanf("%c",&ch);
printf("%02x %c\n",ch, toupper(ch));
return 0;
}
相似回答