3.3.3 字符型数据
1.字符常量
字符是构成源程序的基本元素,C语言字符常量是用单引号括起来的单个字符,在计算机中,字母、标点符号都属于字符常量。如:'A','X','Z','>'等。
字符在计算机中是以其ASCⅡ码值来存储的。每个字符都有对应的ASCⅡ码值。具体详见附录1。
另外,C语言中还有一种特殊形式的字符常量,就是以一个“”开头的字符序列,称为转义字符(具体如表3-3所示)。
表3-3
例3.3 转义字符的应用。
程序运行结果如下:
第一个printf函数首先执行字符“t”,光标先跳到下一个tab位置,接着输出“china!”字符序列,后面的字符“r”使光标返回到本行的开头,再输出字符序列“welcome”,最后一个字符“n”是“换行”,使光标位置移到下一行开头位置。故第一个printf函数输出结果是welcome china!
第二个printf函数一开始输出字符“"”,即输出双引号,后面的字符序列“learn”按原样输出,字符“101”对应的字符为“A”,字符序列“BC”按原样输出,字符“”表示一个反斜杠,字符“n”原样输出,字符“”“表示一个”,“n”表示换行,故第二个printf函数输出结果是“learn ABCn”。
2.字符变量
字符变量用来存放单个字符,一个字符变量在某一时刻只能存放一个具体字符。
字符变量定义的一般形式如下:
char 变量名;
例如:char ch1,ch2;
上述定义表示ch1和 ch2为字符型变量,在内存中占8个有效二进制位(一个字节)。
例3.4 大小写英文字母的转换。
程序如下:
程序运行结果如下:
此程序是将英文字母a和b转换为A和B。字符常量在程序中可用其对应的ASCⅡ码值来代替,ASCⅡ码的存储方式和整数一样,故一个字符型数据既可以用字符形式输出,也可以用整数形式输出。同样,字符的ACSⅡ码值可以进行算术运算。
3.字符串常量
字符串常量是用双引号括起来的一组字符。例如:“how are you”、“hello”等。
字符常量和字符串常量是两个不同的概念,C语言系统自动在字符串的结尾加一个结束标志符“”,来表示该字符串已经结束。例如字符串"Hello"在内存中的实际形式如下:
在程序中,只能将一个字符常量赋给一个字符变量,绝对不能将一个字符串常量赋给一个字符变量。