C语言阅读程序输出星号井号,C语言字符
在实际开发中,程序员很少用单个字符来表示数据,字符的意义主要作为数组的时候可以形成一个字符串。在本章节中,我们重点介绍字符与整数之间的关系和ASCII码的相关知识。
字符类型char,只能用单引号' '来包围,不是用双引号" "包围。而字符串只能用双引号" "包围,不能用单引号' '包围。
输出字符使用 %c,输出字符串使用 %s。
一、ASCII码表
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码方案,它主要用于显示现代英语和其他西欧语言,它是现今最通用的单字节编码方案,等同于国际标准ISO/IEC 646。
ASCII码规范于1967年第一次发布,最后一次更新是在1986年,它包含了33个控制字符(具有特殊含义无法显示的字符)和95个可显示字符。
1、ASCII 控制字符 (字符编码: 0-31)
在ASCII码表中,前32个字符是不能用于打印的编码,而是用于控制像打印机一样的外围设备。十进制符号中文解释十进制符号中文解释
0NULL空字符16DLE数据链路转义
1SOH标题开始17DC1设备控制1
2STX正文开始18DC2设备控制2
3ETX正文结束19DC3设备控制3
4EOT传输结束20DC4设备控制4
5ENQ询问21NAK拒绝接收
6ACK收到通知22SYN同步空闲
7BEL铃23ETB传输块结束
8BS退格24CAN取消
9HT水平制表符25EM介质中断
10LF换行键26SUB替换
11VT垂直制表符27ESC换码符
12FF换页键28FS文件分隔符
13CR回车键29GS组分隔符
14SO移出30RS记录分离符
15SI移入31US单元分隔符
2、ASCII 可打印字符 (字符编码: 32-127)
可打印字符共95个。
1)32是空格。
2)48~57为0到9十个阿拉伯数字;
3)65~90为26个大写英文字母;
4)97~122号为26个小写英文字母;
5)其余为一些标点符号、运算符号等;
6)第127个字符表示的是键盘上的删除命令。十进制符号中文解释十进制符号中文解释
32空格80P大写字母P
33!感叹号81Q大写字母Q
34"双引号82R大写字母R
35#井号83S大写字母S
36$美元符84T大写字母T
37%百分号85U大写字母U
38&与86V大写字母V
39'单引号87W大写字母W
40(左括号88X大写字母X
41)右括号89Y大写字母Y
42*星号90Z大写字母Z
43+加号91[左中括号
44,逗号92\反斜杠
45-连字号或减号93]右中括号
46.句点或小数点94^音调符号
47/斜杠95_下划线
480096`重音符
491197a小写字母a
502298b小写字母b
513399c小写字母c
5244100d小写字母d
5355101e小写字母e
5466102f小写字母f
5577103g小写字母g
5688104h小写字母h
5799105i小写字母i
58:冒号106j小写字母j
59;分号107k小写字母k
60
61=等号109m小写字母m
62>大于110n小写字母n
63?问号111o小写字母o
64@电子邮件符号112p小写字母p
65A大写字母A113q小写字母q
66B大写字母B114r小写字母r
67C大写字母C115s小写字母s
68D大写字母D116t小写字母t
69E大写字母E117u小写字母u
70F大写字母F118v小写字母v
71G大写字母G119w小写字母w
72H大写字母H120x小写字母x
73I大写字母I121y小写字母y
74J大写字母J122z小写字母z
75K大写字母K123{左大括号
76L大写字母L124|垂直线
77M大写字母M125}右大括号
78N大写字母N126~波浪号
79O大写字母O127删除
3、转义字符
C语言中,字符需要转义的情况有两种:
1)对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,也无法从键盘输入;
2)某些字符在C语言中有特别的用途,如单引号、双引号、反斜杠。
C语言又定义了一种简单的书写方式,即转义字符的形式来表示。
转义字符完整的列表如下:转义字符意义ASCII码值使用频率
\n换行(LF) ,将当前位置移到下一行开头。10每天都用
\'单引号。39常用
\"双引号。34常用
\\反斜杠。92常用
\r回车(CR)13windows平台常用,linux平台不常用。
\t水平制表(HT) 。920年前常用,现在不用。
\v垂直制表(VT)。1120年前常用,现在不用。
\a响铃(BEL)。720年前常用,现在不用。
\b退格(BS) ,将当前位置移到前一列。820年前常用,现在不用。
\f换页(FF),将当前位置移到下页开头。1220年前常用,现在不用。
\n是最常用的转义字符,表示换行,让文本从下一行的开头输出,前面的章节中已经多次使用。
\r\n用于windows平台DOS格式文件的换行。
单引号、双引号、反斜杠是特殊的字符,不能直接表示。
单引号是字符类型的开头和结尾,要使用\'表示。
双引号是字符串的开头和结尾,要使用\"表示。
反斜杠是转义字符的开头,要使用\\表示。
示例(book67.c)/*
* 程序名:book67.c,此程序演示C语言的转义字符。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include
int main()
{
printf("输出'单引号\'的方法。\n");
printf("输出双引号\"的方法。\n");
printf("输出反斜杠\\的方法。\n");
printf("单引号'不转义也能输出。\n");
return 0;
}
运行效果
二、字符就是整数
字符和整数没有本质的区别。可以给 char 变量一个字符,也可以给它一个整数;反过来,可以给 int 变量一个整数,也可以给它一个字符。
char变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII 码表转换成对应的字符,如果以 %d 输出,那么还是整数。
int变量在内存中存储的是整数本身,如果以 %c 输出时,也会根据 ASCII 码表转换成对应的字符。
也就是说,ASCII 码表将整数和字符关联起来了。
char类型占内存一个字节,signed char取值范围是-128-127,unsigned char取值范围是0-255。
如果整数大于255,那么整数还是字符吗?
描述再准确一些,在char的取值范围内(0-255),字符和整数没有本质区别。
字符肯定是整数,0-255范围内的整数是字符,大于255的整数不是字符。
示例(book68.c)/*
* 程序名:book68.c,此程序演示字符与整数的关系
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include
int main()
{
char a = 'E';
char b = 70;
int c = 71;
int d = 'H';
printf("a=%c, a=%d\n", a, a);
printf("b=%c, b=%d\n", b, b);
printf("c=%c, c=%d\n", c, c);
printf("d=%c, d=%d\n", d, d);
}
运行效果
在ASCII码表中,E、F、G、H 的值分别是 69、70、71、72。
三、常用的库函数
以下是常用的字符函数,必须掌握。int isalpha(int ch); // 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0。
int isalnum(int ch); // 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0。
int isdigit(int ch); // 若ch是数字('0'-'9')返回非0值,否则返回0。
int islower(int ch); // 若ch是小写字母('a'-'z')返回非0值,否则返回0。
int isupper(int ch); // 若ch是大写字母('A'-'Z')返回非0值,否则返回0。
int tolower(int ch); // 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')。
int toupper(int ch); // 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
以下是不常用的字符函数,极少使用,了解即可。int isascii(int ch); // 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0。
int iscntrl(int ch); // 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回非0值,否则返回0。
int isprint(int ch); // 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0。
int ispunct(int ch); // 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0。
int isspace(int ch); // 若ch是空格(' '),水平制表符('/t'),回车符('/r'),走纸换行('/f'),垂直制表符('/v'),换行符('/n'),返回非0值,否则返回0。
int isxdigit(int ch); // 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,否则返回0。
四、课后作业
1)研究ascii码表,重点关心几个问题:
(1)字符是整数,整数可以进行加减运算,字符可以吗?
(2)字母'A'-'Z'、'a'-'z'和数字'0'-'9'的ascii码值是不是连续的?
(3)字母'A'和'a'、'Z'和'z'的ascii码值的差是多少?
2)根据上面的研究结果,编写函数,实现字符操作常用的库函数的功能,函数的声明如下:int ISALPHA(int ch); // 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0。
int ISALNUM(int ch); // 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0。
int ISDIGIT(int ch); // 若ch是数字('0'-'9')返回非0值,否则返回0。
int ISLOWER(int ch); // 若ch是小写字母('a'-'z')返回非0值,否则返回0。
int ISUPPER(int ch); // 若ch是大写字母('A'-'Z')返回非0值,否则返回0。
int TOLOWER(int ch); // 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')。
int TOUPPER(int ch); // 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
3)自定义一个函数,函数名是ctoi,利用ASCII码进行加减运算,把字符的'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'转换为整数的0、1、2、3、4、5、6、7、8、9。不允许用if和switch语句,只能用ASCII码运算,函数的声明如下:int ctoi(const char chr); // chr为用字符方式表示的数字,函数的返回值为数字的整数。
调用示例:printf("'0' is %d\n",ctoi('0')); // 输出结果是'0' is 0
printf("'9' is %d\n",ctoi('9')); // 输出结果是'9' is 9
4)编写示例程序,测试char和unsigned char赋值超过取值范围的后果。
5)%不是转义字符,要输出%怎么办?
五、版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您联系我们指正,非常感谢!!!
C语言阅读程序输出星号井号,C语言字符相关推荐
- C语言阅读程序输出星号井号,第1章 C语言概述-python的长整型-WinFrom控件库|.net开源控件库|HZHControls官网...
声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.comQQ:80368704 第1章 C语言概述 1.1和1. ...
- C语言编写程序输出循环字母,用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字母输出....
程序如下: #include int main() { char ch; scanf("%c",&ch); printf("%c",ch-'a'+'A' ...
- 怎么输出链表长度C语言,下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里。请高手看下...
当前位置:我的异常网» C语言 » 下面程序输出结果不,如输出的链表长度结果不对,不 下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里.请高手看下 www.myexceptions.n ...
- max日期最大值为0_C语言编写程序输出10个整数中最小值或最大值
C语言编写程序输出10个整数中最小值或最大值 这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧.其中包括:输入语句,输出语句,数组,分支结构,循环结构.希望广大C语言 ...
- c语言一个整数各位数字个数_C语言编写程序输出10个整数中最小值或最大值
C语言编写程序输出10个整数中最小值或最大值 这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧.其中包括:输入语句,输出语句,数组,分支结构,循环结构.希望广大C语言 ...
- C语言在main中输入2个整数ab,请教一个C语言问题。若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出...
导航:网站首页 > 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输 ...
- c语言输出字母abcd,有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:...
有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下: 答案:6 信息版本:手机版 解决时间 2019-10-06 21:36 已解决 2019-10-06 01:51 1.包 ...
- C语言(C++语言)中##(两个井号)和#(一个井号)用法[转]
C语言(C++语言)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关 于#和## 在C语言的宏中,#的功能是将其后面的宏参数进 ...
- 用c语言编写程序输出* ***,用C语言如何编写程序输出以下图形
用C语言如何编写程序输出以下图形 关注:169 答案:3 mip版 解决时间 2021-01-18 16:55 提问者傃顏莄蒾亾 2021-01-17 19:07 * * * * * * * * ...
最新文章
- java super实例_java Super 用法详解及实例代码
- C语言分区排序partition sort 算法(附完整源码)
- SAP ABAP Netweaver系统的传输请求类型和原始系统的含义
- .net Core发布至IIS完全手册带各种踩坑
- 【pyqt5学习】——tablewidget控件学习
- java之Hibenate中监听事件的重写和二级cache缓存
- 李晓枫:金融信息化发展和创新的三方面
- 分治法解决最大子数组问题【 转载】
- 仿Android6.0联系人列表
- Navicat操作SQL server 2008R2文件.bak文件还原
- 计算机课程联合考试是什么意思,计算机技术在职研究生能否通过一月联考的方式学习课程内容...
- 使用Eclipse开发Android应用程序
- 佳能g3800编程器固件_佳能g3800清零软件 佳能g3800打印机废墨清零
- wxWindows Frame程序简化版
- E/MicroMsg.SDK.WXMediaMessage(17582): checkArgs fail, thumbData is invalid
- android4.2实现pwm,Android平台下AOA协议的PWM信号控制系统
- 简述Handler机制原理
- 病房计算机管理制度,全套协和医院管理制度大全【148个文件】
- MD5 SHA1 SHA256 SHA512 SHA1WithRSA RSA 的区别
- 手机输入法emoji、颜文字存储
热门文章
- 教你如何进行c字符串解密
- Linux tar 命令浅析
- 【转】贾扬清:希望Caffe成为深度学习领域的Hadoop
- oracle发现表被锁后又没了,Oracle的表被锁后的恢复
- 银河麒麟V10软件安装—arm+mysql8.0.27
- 【Error】Kitematic - VirtualBox is not installed. Please install it via the Docker Toolbox.
- com_error: (-2147221008, '\xc9\xd0\xce\xb4\xb5\xf7\xd3\xc3 CoInitialize\xa1\
- python读取mysql数据每次都耗时600秒_就是这么流弊!三行Python代码,让数据处理速度提高2到6倍...
- excel的相对引用和绝对引用
- 一些有意思的网站合集