前言
字符在内存中以ASCII码的形式存放,也就是实际存储的是整型数据,因此是可以进行运算的。
一、输出字符的前驱和后继
C语言中可以处理255个字符,除了ASCII码值为0的字符之外每个字符都有唯一的前驱,除了ASCII码值为255的字符之外每个字符都有一个直接后继,可以利用算术运算来处理前驱和后继的问题。解决问题的前提是默认字符的ASCII码值不是0和255,字符的前驱为该字符的ASCII码值减去1,字符的后继为该字符的ASCII码值加上1。
二、程序实例
1.程序代码
#include <stdio.h>
void main()
{
char c1,c,c2;
printf("please input character : ");
c=getchar();
c1=c-1;
c2=c+1;
printf("%c %d ,%c %d ,%c %d",c1,c1,c,c,c2,c2);
}
2.运行结果
3.结果分析
代码中getchar()函数功能是从键盘输入一个字符,赋给c。对字符数据进行算术运算,就是对它们的ASCII码进行算术运算,c1=c-1就是c1存放的字符比c存放的字符的ASCII码少1,即是c1存放的是c的前驱字符,同理c2存放的是c的后继字符。
三、拓展应用
- 字符数据以ASCII的形式存放,在内存中实际存放的是二进制表示的整数,这样在程序设计中的字符是可以参加算术运算的。
- 对于字符型数据的乘除法是无意义的,可以利用算术运算的加减法求得当前某个字符的前几个或者后几个字符。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了输出字符的前驱和后继。