最近在刷题网站上碰到一个题:输入一个小写字母,将其转换为大写字母.
话不多说,先看代码和结果

#include<stdio.h>
int main()
{    char ch;scanf("%c",&ch);printf("%c",ch-32);return 0;
}

在Linux里,编译结果如下

$gcc variable1.c
$./a.out
a
A

可能很多小伙伴会问,代码中“ch-32”的意义是什么,这就涉及ASCII码的概念(American Standard Code for Information Interchange:美国信息交换标准代码),其产生的原因是因为在计算机中,任何数据都以二进制的形式存储,因此我们没法用二进制去真正意义上的存个字母"a"进去,因为再怎么说二进制数最后只能落实成数而不是文本。

这就好比以前谍战片里的电报只能发送电信号,无论如何也不可能发送一个手写的字母"a",如果我们想用电报表示文本,那就只能对每一个文本进行编码(Encoding),这就是摩尔斯密码产生的背景:用电信号表示文本。

对于ASCII也是同理,它是一种把字符编码成二进制的方式:
如图所示,数字 32–126 分配给了能在键盘上找到的字符

在C语言中,ASCII码代表的数字和字母转换如下所示;

#include<stdio.h>
int main()
{    char ch;scanf("%c",&ch);printf("%c",ch);return 0;
}

编译过程如下

$gcc variables2.c
$./a.out
a
97
 这里就涉及了C语言中另一个重要的概念:类型转换

分类如下:

1.自动类型转换:在程序运行的时候,低精度的数据会自动向高精度的数据
进行类型转换,数据的精度度不会丢失。例如int=3,转换为float为3.00,对数据精度
没啥影响,但是如果3.13转换为int类型的,就可能会因为四舍五入而导致
其精准度降低。
一般顺序为char - short - int - long - float -double .....
2.强制类型转换:在我们运算的过程中,有的时候会对数据进行短暂的类型转换,
去进行运算,让数据更加精确(常应用于指针,因为指针指向的数据不管如何转换,
指针的精度都是不会丢失的,但是当高精度向低精度转换时,数据会丢失)。

ASCII表中’a代表的值为97,减去32为‘A’。
在编译的过程中,变量‘ch’是char类型的,C编译器会将变量’ch’转换为ASCII数值,减去32后为变量’ch’的ASCII值为65,在输出时会转换为字母’A’
另外,+32可以将大写字母转换为小写字母。

C语言之简单的字母大小写转换相关推荐

  1. C语言实现字符串英文字母大小写转换

    Q:输入一串字符串,将其中的大写字母换成小写,小写字母换成大写输出. Eg:输入abdAd,输出ABDaD 思路: 把'A'变为'a' 我们需要把01000001变为01100001,即把第六位的0变 ...

  2. c语言中字母大写转小写,C语言中字母大小写转换的简单操作

    大写字母要转换小写字母,要怎么操作呢?而在C语言开发中,我们经常会遇到这样或者那样的问题,别着急,爱站技术频道为你细细道来C语言中字母大小写转换的简单操作. C语言tolower()函数:将大写字母转 ...

  3. 汇编语言:简单的英文字母大小写转换

    简单的英文字母大小写转换

  4. c语言中字母大小写转换的两种办法

    起因: 牛客网一道题,需要按行输入多组字母,然后按行输出其转换大小写后的字母,我们来探讨一下. 分析: 有两个要点需要注意,一是要按行多组输入,二是要字母大小写转换.首先是按行多组输入,我们可以用wh ...

  5. C语言 —— char类型字母大小写转换

    char类型的使用 一.字符型:char 二.ASCII表 三.例题:字母大小写转换 一.字符型:char # include <stdio.h> int main (void) {cha ...

  6. php 清除英文字母,PHP英文字母大小写转换函数小结

    PHP英文字母大小写转换函数小结 发布于 2015-01-23 10:54:41 | 143 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  7. php 英文小写变大写,PHP_PHP英文字母大小写转换函数小结,每个单词的首字母转换为大写 - phpStudy...

    PHP英文字母大小写转换函数小结 每个单词的首字母转换为大写:ucwords() $foo = 'hello world!'; $foo = ucwords($foo);             // ...

  8. latex中字母大小写转换实践

    latex中字母大小写转换实践 要点概览 目的 实现常用的字母大小写转换,可以用于常规的字符串处理以及biblatex参考文献样式定义 全部大写/全部小写 句首大写(句首字母大写其它不变,句首字母大写 ...

  9. C++ 字符串字母大小写转换

    C++ 字符串字母大小写转换 使用algorithm,里面的tolower(转小写)toupper(转大写) #include <iostream> #include <string ...

最新文章

  1. SWT中调用Automation的方式
  2. android 4.0之前版本号出现JSONException异常
  3. 数据结构 排序和查找
  4. Linux和Windows平台 动态库.so和.dll文件的生成
  5. Golang经典面试题下
  6. POJ 2352 Stars (线段树)
  7. Briage桥接设计模式
  8. 题目:JavaWeb乐购资源管理系统(附源码链接免费下载)
  9. Java面试必备的集合源码详解,砥砺前行!
  10. Postman使用入门
  11. 运动社交或将成为“反科技”先锋
  12. [2178]链表的有序集合 (链表的插排法+重复元素的删除) SDUT
  13. Processing的条件式
  14. 【MATLAB】从文件读取:xlsread、load
  15. 怎样用php制作动态烟花,动态烟花图片之自己动手制作
  16. html快闪软件制作,快闪文字视频制作
  17. Bugku:杂项 一枝独秀
  18. 《精进:如何成为一个很厉害的人》 采铜
  19. 【Hibernate步步为营】--映射合集汇总
  20. 成功抗“疫”背后的IT科技

热门文章

  1. java传感器_传感器 - javawebsoa - 博客园
  2. 谷歌的15条招人秘诀
  3. MySQL多实例(一台服务器搭建多个数据库)
  4. 解决Unity旋转改变局部坐标问题
  5. Word在试图打开文件时遇到错误。 请尝试下列方法: * 检查文档或驱动器的文件权限。 * 确保有足够的内存和磁盘空间。 * 用文件恢复转换器打开文件。
  6. docker进入容器的方法
  7. python实现二维码识别软件_OpenCV和Zbar两个Python模块实现二维码和条形码识别
  8. 不要问程序员什么是“对象”,也不要给他介绍“对象”
  9. 全网独家解决方案: doccano报错 Your models in app(s): ‘api‘ have changes that are not yet reflected in a migrat
  10. ubuntu 安装opendr失败_安装软件失败求助