关于char类型

  我们先从一道编程题开始讲起。

编程实现字母的大小写转换,要求从键盘输入任意大写字母,程序转换成小写字母并输出。

  这是今天在上C语言课的时候,老师在课上布置的随堂练习。我自己一开始是打算用if判断来实现,但是非常的明显————使用逻辑判断语句来实现这个题目既复杂,又显的……emmm,有点蠢。所以我就“稍微”百度了一下。这里贴出这位老哥的做法:
C语言实验题――大小写转换 从键盘输入一个大写字母,要求改用小写字母输出。

  为了方便查看和说明,我将上面链接当中的代码展示在下方。

#include<stdio.h>
int main()
{
char ch;
ch=getchar();
//这里并没有检验这个是不是字母
putchar(ch+32);
return 0;
}

初识char

  先简单说明一下,char属于C语言当中的一种常见的数据类型,即字符类型。

  以下文字取于书本原文:

“字符类型包含字母、数字、标点符号以及控制符号等,在内存当中是以整数数值的方式来存储的,每一个字符占用1个字节(8个二进制位)的数据长度,所以字符ASCII编码的数值范围在0~127之间。例如字符‘A’的数值为65、字符‘0’的数值为48。”

  其实说白了,char类型就负责在C语言当中对字符的处理。字符类型也有char、signed char和unsigned char这三种。

char的使用

  在C语言当中使用char时,需要这样表达。

char ch='a' //声明ch为字符变量,并设置初始值为'a'

 这一语句的意思是在声明一个字符变量,变量的名字为“ch”,它被设置的初始值为a。

注意:在为字符变量赋值的时候,使用的是单引号info ,而不是双引号<mark class=”hl-label @”””>danger !

  在赋值的时候,除了直接使用字符,我们也可以利用ASCII码赋值,例如上面那一行我们还可以写成如下形式:

char ch=65; //声明ch为字符变量,并设置初始值为65

  当然了,同理,我们还可以这样来表示字符。

char text='\x41'; //十六进制ASCII码表示 A 字符
char text=0x41; //十六进制数值表示 A 字符
char text='\101'; //八进制ASCII码表示 A 字符
char text=0101; //八进制数值表示 A 字符

注意:在使用ASCII码或者进制数进行赋值时,语句结尾需要加上info

字符类型当中的其他函数

关于getchar()函数

  接下来我们就回到一开始那个老哥的例程上。在例程当中,我们可以看见这几条语句:

ch=getchar();

  这条语句当中出现了info 这个函数,这个函数在C语言当中的作用是从计算机终端(一般为键盘)获取一个无符号字符。getchar()函数只能接收一个字符,其函数值就是从输入设备获取到的字符。getchar()——百度百科

关于putchar()函数

  同时我们在例程当中出现了这条语句:

putchar(ch+32);

  这条语句当中出现了info 这个函数,这个函数的作用是把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。

  除此之外,我们还看见在括号里面出现info

  字符可以通过ASCII码进行四则运算:

printf("%d\n",100+'A');
printf("%d\n",100-'A');

  由于字符A的ASCII码为65,所以上面的运算出来的结果分别为165与35。