作者:txy001美丽人生_618 | 来源:互联网 | 2024-12-18 19:01
1、字符型常量 字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。 C语言的字符使用的就是ASCII字符集,总共有128个,每个相应的ASCII码都表示一个字符: (1)每一个字符都有唯一的次序值,即ASCII码。 (2)数字’0’,‘1’,‘2’,…,‘9’、大写字母’A’,‘B’,‘C’,…,‘Z’、小写字母’a’,‘b’,‘c’,…,'z’的ASCII都是升序连续排列的。 注: 数字和数字字符不一样的,带单引号的是字符,例如:1是整型数字,而’1’是字符,其ASCII码是49,即按整型输出的话就是49,按字符型数据输出就是1。
ASCII码表:
符号&#xff08;解释&#xff09; 十进制 十六进制 符号&#xff08;解释&#xff09; 十进制 十六进制 NULL&#xff08;空操作&#xff09; 0 0x00 &#64; 64 0x40 SOH&#xff08;标题开始&#xff09; 1 0x01 A 65 0x41 STX&#xff08;正文开始&#xff09; 2 0x02 B 66 0x42 ETX&#xff08;正文结束&#xff09; 3 0x03 C 67 0x43 EOT&#xff08;传输结束&#xff09; 4 0x04 D 68 0x44 ENQ&#xff08;请求&#xff09; 5 0x05 E 69 0x45 ACK&#xff08;收到通知&#xff09; 6 0x06 F 70 0x46 BEL&#xff08;响铃&#xff09; 7 0x07 G 71 0x47 BS&#xff08;退格&#xff09; 8 0x08 H 72 0x48 HT&#xff08;水平制表符&#xff09; 9 0x09 I 73 0x49 LF&#xff08;换行&#xff09; 10 0x0A J 74 0x4A VT&#xff08;垂直制表符&#xff09; 11 0x0B K 75 0x4B FF&#xff08;换页&#xff09; 12 0x0C L 76 0x4C CR&#xff08;回车&#xff09; 13 0x0D M 77 0x4D SO&#xff08;不用切换&#xff09; 14 0x0E N 78 0x4E SI&#xff08;启用切换&#xff09; 15 0x0F O 79 0x4F DLE&#xff08;数据链路转义&#xff09; 16 0x10 P 80 0x50 DC1&#xff08;设备控制1&#xff09; 17 0x11 Q 81 0x51 DC2&#xff08;设备控制2&#xff09; 18 0x12 R 82 0x52 DC3&#xff08;设备控制3&#xff09; 19 0x13 S 83 0x53 DC4&#xff08;设备控制4&#xff09; 20 0x14 T 84 0x54 NAK&#xff08;拒绝接收&#xff09; 21 0x15 U 85 0x55 SYN&#xff08;同步空闲&#xff09; 22 0x16 V 86 0x56 ETB&#xff08;结束传输块&#xff09; 23 0x17 W 87 0x57 CAN&#xff08;取消&#xff09; 24 0x18 X 88 0x58 EM&#xff08;媒介结束&#xff09; 25 0x19 Y 89 0x59 SUB&#xff08;代替&#xff09; 26 0x1A Z 90 0x5A ESC&#xff08;换码&#xff08;溢出&#xff09;&#xff09; 27 0x1B [ 91 0x5B FS&#xff08;文件分隔符&#xff09; 28 0x1C \ 92 0x5C GS&#xff08;分组符&#xff09; 29 0x1D ] 93 0x5D RS&#xff08;记录分隔符&#xff09; 30 0x1E ^ 94 0x5E US&#xff08;单元分隔符&#xff09; 31 0x1F _ 95 0x5F (space)&#xff08;空格&#xff09; 32 0x20 &#96; 96 0x60 ! 33 0x21 a 97 0x61 " 34 0x22 b 98 0x62 # 35 0x23 c 99 0x63 $ 36 0x24 d 100 0x64 % 37 0x25 e 101 0x65 & 38 0x26 f 102 0x66 ’ 39 0x27 g 103 0x67 ( 40 0x28 h 104 0x68 ) 41 0x29 i 105 0x69 * 42 0x2A j 106 0x6A &#43; 43 0x2B k 107 0x6B , 44 0x2C l 108 0x6C - 45 0x2D m 109 0x6D . 46 0x2E n 110 0x6E / 47 0x2F o 111 0x6F 0 48 0x30 p 112 0x70 1 49 0x31 q 113 0x71 2 50 0x32 r 114 0x72 3 51 0x33 s 115 0x73 4 52 0x32 t 116 0x74 5 53 0x35 u 117 0x75 6 54 0x36 v 118 0x76 7 55 0x37 w 119 0x77 8 56 0x38 x 120 0x78 9 57 0x39 y 121 0x79 : 58 0x3A z 122 0x7A ; 59 0x3B { 123 0x7B < 60 0x3C | 124 0x7C &#61; 61 0x3D } 125 0x7D > 62 0x3E ~ 126 0x7E ? 63 0x3F DEL&#xff08;删除&#xff09; 127 0x7F
2、字符型变量 用char定义的变量为字符型变量。例如&#xff1a;char op;
定义了一个字符型变量op&#xff0c;其数据类型为char型&#xff0c;即字符型数据。可以对其进行赋值&#xff0c;例如op&#61;&#39;*&#39;
就是将字符型常量’*‘赋值给变量op。 字符型变量在计算机中是按照ASCII码的值来存储的&#xff0c;可以和整形数据进行运算&#xff0c;其运算规格类似&#xff0c;例如&#xff1a;op &#61; &#39;*&#39;&#43;1;
&#xff0c;那么op按字符型数据输出就是’&#43;’&#xff0c;按整型数据输出就是43。
3、字符型数据的输入输出 (1)scanf()和printf()函数输入输出字符 scanf()和printf()函数进行字符型数据的输入输出和整型浮点型的处理方式完全一样&#xff0c;只是格式控制字符串中相应的格式控制说明为%c
。
(2)字符输入函数getchar() getchar()函数可以从键盘输入一个字符。其一般用法为&#xff1a;
char ch; ch &#61; getchar ( ) ;
这句话就是从键盘输入一个字符&#xff0c;并将其赋给变量ch。
(3)字符输出函数putchar() putchar()函数是输出一个字符。其一般用法为&#xff1a;
putchar ( 输出参数) ;
输出参数是字符型变量或者字符型常量。 注&#xff1a; 使用getchar()函数和putchar()函数同样需要先包含头文件#include
函数getchar()和putchar()分别只能输入和输出一个字符&#xff0c;若要处理多个字符的输出和输出&#xff0c;那么一般需要采用循环的方式多次调用该函数。例如下面的代码为输入8个字符&#xff0c;然后将这8个字符再输出&#xff0c;每两个字符中间添加一个’-’。
# include int main ( void ) { char chint first &#61; 1 , k; printf ( "Enter 8 characters:" ) ; for ( k&#61; 1 ; k<&#61; 8 ; k&#43;&#43; ) { ch &#61; getchar ( ) ; if ( first &#61;&#61; 1 ) { putchar ( ch) ; first &#61; 0 ; } else { putchar ( &#39;-&#39; ) ; putchar ( ch) ; } } }
运行结果&#xff1a;
Enter 8 characters:gorgeous g-o-r-g-e-o-u-s
例&#xff1a;四则运算 求解简单的四则运算表达式。输入一个形如 "操作数 运算符 操作数"的四则运算表达式&#xff0c;输出运算结果&#xff0c;要求对除数0的情况做特别处理。
# include int main ( void ) { double value1, value2; char op; printf ( "Type in an expression:" ) ; scanf ( "%lf%c%lf" , & value1, & op, & value2) ; if ( op &#61;&#61; &#39;&#43;&#39; ) { printf ( "&#61;%.2f\n" , value1&#43; value2) ; } else if ( op &#61;&#61; &#39;-&#39; ) { printf ( "&#61;%.2f\n" , value1- value2) ; } else if ( op &#61;&#61; &#39;*&#39; ) { printf ( "&#61;%.2f\n" , value1* value2) ; } else if ( op &#61;&#61; &#39;/&#39; ) { if ( value2 !&#61; 0 ) { printf ( "&#61;%.2f\n" , value1/ value2) ; } else { printf ( "Divisior can not be 0!\n" ) ; } } else { printf ( "Unknown operator!\n" ) ; } return 0 ; }
运行结果&#xff1a;
Type in an expression:8.65&#43;3.29 &#61;11.94
Type in an expression:76.9/0 Divisior can not be 0!
Type in an expression:47.2 - 76 Unknown operator!
注&#xff1a; 此处一定要注意&#xff0c;这里的操作数和运算符之间必须连续输入&#xff0c;两者之间不能有空格。这是因为空格也是一个字符&#xff0c;它会占据运算符的位置&#xff0c;在程序中就会是一个无法识别的运算符。如上述运行结果第三个。
参考 C语言程序设计(第4版)/何钦铭&#xff0c;颜晖 例题及课后习题参考程序https://gitee.com/sgxgitee/mooc-c