【学习笔记】【C语言】char类型

1. 存储细节

ASCII单字节表(双字节GBK\GB2312\GB18030\Unicode)

2. 常见错误

char c = A;

char c = "A";

char c = ‘ABCD‘;

char c = ‘男‘;

3. 当做整型使用

在-128~127范围内,可以当做整数来用

4. %c和%d\%i的使用

printf(“%d”, ‘A’);

printf(“%c”, 68);

5. 转义字符


转义字符


意义


ASCII码值


\n


将当前位置移到下一行开头(回车换行)


10


\t


跳到下一个TAB位置


9


\\


代表一个反斜线字符


92


\‘


代表一个单引号字符


39


\"


代表一个双引号字符


34


\0


空字符


0

6.ASCII码对照表

(二进)Bin    (十进)Dec   (十六进)Hex         缩写/字符                                       解释
0000 0000     0           00             NUL (null)                                      
空字符   
0000 0001     1           01             SOH (start of handing)                  
标题开始 
0000 0010     2           02             STX (start of text)                          
正文开始 
0000 0011     3           03             ETX (end of text)                          
正文结束
0000 0100     4           04             EOT (end of transmission)            
传输结束 
0000 0101     5           05             ENQ (enquiry)                              
请求 
0000 0110     6           06             ACK (acknowledge)                      
收到通知 
0000 0111     7           07             BEL (bell)                                      
响铃
0000 1000     8           08             BS (backspace)                            
退格 
0000 1001     9           09             HT (horizontal tab)                        
水平制表符 
0000 1010     10         0A             LF (NL line feed, new line)            
换行键 
0000 1011     11         0B             VT (vertical tab)                            
垂直制表符 
0000 1100     12         0C             FF (NP form feed, new page)        
换页键 
0000 1101     13         0D             CR (carriage return)                      
回车键
0000 1110     14         0E             SO (shift out)                                
不用切换 
0000 1111     15         0F             SI (shift in)                                    
启用切换 
0001 0000     16         10             DLE (data link escape)                  
数据链路转义 
0001 0001     17         11             DC1 (device control 1)                  
设备控制1 
0001 0010     18         12             DC2 (device control 2)                  
设备控制2 
0001 0011     19         13             DC3 (device control 3)                  
设备控制3 
0001 0100     20         14             DC4 (device control 4)                  
设备控制4 
0001 0101     21         15             NAK (negative acknowledge)        
拒绝接收 
0001 0110     22         16             SYN (synchronous idle)                
同步空闲 
0001 0111     23         17             ETB (end of trans. block)              
传输块结束 
0001 1000     24         18             CAN (cancel)                                
取消
0001 1001     25         19             EM (end of medium)                      
介质中断 
0001 1010     26         1A             SUB (substitute)                            
替补 
0001 1011     27         1B             ESC (escape)                                
溢出 
0001 1100     28         1C             FS (file separator)                        
文件分割符 
0001 1101     29         1D             GS (group separator)                    
分组符 
0001 1110     30         1E             RS (record separator)                  
记录分离符 
0001 1111     31         1F             US (unit separator)                        
单元分隔符 
0010 0000     32         20            
空格
0010 0001     33         21             !
0010 0010     34         22             "
0010 0011     35         23             #
0010 0100     36         24             $
0010 0101     37         25             %
0010 0110     38         26             &
0010 0111     39         27             ‘
0010 1000     40         28             (
0010 1001     41         29             )
0010 1010     42         2A             *
0010 1011     43         2B             +
0010 1100     44         2C             ,
0010 1101     45         2D             -
0010 1110     46         2E             .
0010 1111     47         2F             /
0011 0000     48         30             0
0011 0001     49         31             1
0011 0010     50         32             2
0011 0011     51         33             3
0011 0100     52         34             4
0011 0101     53         35             5
0011 0110     54         36             6
0011 0111     55         37             7
0011 1000     56         38             8
0011 1001     57         39             9
0011 1010     58         3A             :
0011 1011     59         3B             ;
0011 1100     60         3C             <
0011 1101     61         3D             =
0011 1110     62         3E             >
0011 1111     63         3F             ?
0100 0000     64         40             @
0100 0001     65         41             A
0100 0010     66         42             B
0100 0011     67         43             C
0100 0100     68         44             D
0100 0101     69         45             E
0100 0110     70         46             F
0100 0111     71         47             G
0100 1000     72         48             H
0100 1001     73         49             I
0100 1010     74         4A             J
0100 1011     75         4B             K
0100 1100     76         4C             L
0100 1101     77         4D             M
0100 1110     78         4E             N
0100 1111     79         4F             O
0101 0000     80         50             P
0101 0001     81         51             Q
0101 0010     82         52             R
0101 0011     83         53             S
0101 0100     84         54             T
0101 0101     85         55             U
0101 0110     86         56             V
0101 0111     87         57             W
0101 1000     88         58             X
0101 1001     89         59             Y
0101 1010     90         5A             Z
0101 1011     91         5B             [
0101 1100     92         5C             \
0101 1101     93         5D             ]
0101 1110     94         5E             ^
0101 1111     95         5F             _
0110 0000     96         60             `
0110 0001     97         61             a
0110 0010     98         62             b
0110 0011     99         63             c
0110 0100     100       64             d
0110 0101     101       65             e
0110 0110     102       66             f
0110 0111     103       67             g
0110 1000     104       68             h
0110 1001     105       69             i
0110 1010     106       6A             j
0110 1011     107       6B             k
0110 1100     108       6C             l
0110 1101     109       6D             m
0110 1110     110       6E             n
0110 1111     111       6F             o
0111 0000     112       70             p
0111 0001     113       71             q
0111 0010     114       72             r
0111 0011     115       73             s
0111 0100     116       74             t
0111 0101     117       75             u
0111 0110     118       76             v
0111 0111     119       77             w
0111 1000     120       78             x
0111 1001     121       79             y
0111 1010     122       7A             z
0111 1011     123       7B             {
0111 1100     124       7C             |
0111 1101     125       7D             }
0111 1110     126       7E             ~  
0111 1111     127       7F             DEL (delete)                                
删除 

键盘常用ASCII码(十进制表示值)

ESC键           VK_ESCAPE (27)
回车键:        VK_RETURN (13)
TAB键:       VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键:         VK_SHIFT (16)
Ctrl键:         VK_CONTROL (17)
Alt键:          VK_MENU (18)
空格键:         VK_SPACE (/32)
退格键:         VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键:    VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键:        VK_INSERT (45)
Home键:        VK_HOME (36)
Page Up:       VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键:          VK_END (35)
Delete键:       VK_DELETE (46)
方向键(←):    VK_LEFT (37)
方向键(↑):    VK_UP (38)
方向键(→):    VK_RIGHT (39)
方向键(↓):    VK_DOWN (40)
F1键:             VK_F1 (112)
F2键:             VK_F2 (113)
F3键:             VK_F3 (114)
F4键:             VK_F4 (115)
F5键:             VK_F5 (116)
F6键:             VK_F6 (117)
F7键:             VK_F7 (118)
F8键:             VK_F8 (119)
F9键:             VK_F9 (120)
F10键:           VK_F10 (121)
F11键:           VK_F11 (122)
F12键:          VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0:        VK_NUMPAD0 (96)
小键盘1:         VK_NUMPAD0 (97)
小键盘2:         VK_NUMPAD0 (98)
小键盘3:         VK_NUMPAD0 (99)
小键盘4:        VK_NUMPAD0 (100)
小键盘5:        VK_NUMPAD0 (101)
小键盘6:         VK_NUMPAD0 (102)
小键盘7:         VK_NUMPAD0 (103)
小键盘8:         VK_NUMPAD0 (104)
小键盘9:        VK_NUMPAD0 (105)
小键盘.:         VK_DECIMAL (110)
小键盘*:         VK_MULTIPLY (106)
小键盘+:         VK_MULTIPLY (107)
小键盘-:         VK_SUBTRACT (109)
小键盘/:         VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)

7.代码

 1 #include <stdio.h>
 2
 3 int main()
 4 {
 5     //0000 0000 0000 0000 0000 0000 0000 1001
 6     int a = 9;
 7
 8     // 0100 0001
 9     char c = ‘A‘;
10
11     //printf("%c\n", 67);
12
13
14     //printf("%d\n", ‘D‘);
15
16     //char c2 = ‘A‘ + 33; // 98
17
18     //printf("%c - %d \n", c2 , c2);
19
20
21     /*
22      ASCII码表
23      字符   ASCII码值
24       A       65
25       B       66
26       C       67
27
28      */
29
30
31     // 00000000000000 110
32     int num = 6;
33
34     // 54 = 32 + 16 + 4 + 2
35     // 0011 0110
36     char c2 = ‘6‘;
37
38     printf("%d - %d\n", num, c2);
39
40     return 0;
41 }
 1 #include <stdio.h>
 2
 3 int main()
 4 {
 5     // 单引号‘‘只能扩住单字节的字符
 6     // char c = ‘男‘; // 错误写法
 7
 8
 9     //char c = "A";// 错误写法
10
11
12     // char c = A; // 错误写法
13
14     // char c = 65;
15
16     // printf("%c\n", c);
17
18     /*
19     char c = ‘A‘;
20     switch (c) {
21         case ‘A‘:
22             printf("1\n");
23             break;
24         case 65:
25             printf("2\n");
26             break;
27         default:
28             printf("3\n");
29             break;
30     }*/
31
32     // -128 ~ 127
33     //char c = 655894389754367857684;
34
35
36     //printf("%d\n", ‘\n‘);
37
38     printf("\"\n");
39
40     return 0;
41 }

练习

 1 #include <stdio.h>
 2 /*
 3  1.说出下面程序的输出结构
 4  int i = 67 + ‘4‘;
 5  char c = ‘c‘ - 10;
 6
 7  printf("%d - %c\n", i, i);
 8  printf("%d - %c\n", c, c);
 9
10
11  2.写一个函数,将小写字母转为大写
12
13  */
14
15 char upper(char c)
16 {
17     // 如果是小写字母,就转成大写
18     /*
19     if (c>=‘a‘ && c<=‘z‘) { // [‘a‘, ‘z‘]
20         return c - (‘a‘-‘A‘);
21     } else {// 如果不是小写字母,返回字母本身
22         return c;
23     }*/
24
25     // 如果是小写字母,就转成大写
26     if (c>=‘a‘ && c<=‘z‘) { // [‘a‘, ‘z‘]
27         return c - (‘a‘-‘A‘);
28     }
29     // 如果不是小写字母,返回字母本身
30     return c;
31 }
32
33 int main()
34 {
35     char cc = upper(‘f‘);
36
37     printf("%c\n", cc);
38     return 0;
39 }
时间: 2024-12-19 06:08:40

【学习笔记】【C语言】char类型的相关文章

黑马程序员学习笔记--------C语言变量类型,结构体,枚举

本章学习的知识是定义结构体,枚举等自定义的数据类型,已经宏命令,变量类型等细小的知识点,在开始本章的新知识学习之前首先我们要明白的是C语言有丰富的数据类型和运算符,因此计算能力非常强大,计算过程中使用的值一般用变量来存储.变量也是有分类型的,不同类型的变量有不同的存储类型.不同的生命周期.不同的作用域,C语言也提供了一些关键字来设置变量的属性(比如设置存储类型.生命周期). 一.变量类型 变量分为全局变量和局部变量. 首先说明一下局部变量的特点 1> 定义:在函数内部定义的变量,称为局部变量.形

Go语言学习笔记(二) [变量、类型、关键字]

日期:2014年7月19日 1.Go 在语法上有着类 C 的感觉.如果你希望将两个(或更多)语句放在一行书写,它们 必须用分号分隔.一般情况下,你不需要分号. 2.Go 同其他语言不同的地方在于变量的类型在变量名的后面.例如:不是,int a,而是 a int.当定义了一个变量,它默认赋值为其类型的 null 值.这意味着,在 var a int后,a 的 值为 0.而 var s string,意味着 s 被赋值为零长度字符串,也就是 "". 3.Go语言的变量声明和赋值 在Go中使

ios学习笔记---c语言第二天

一.bool布尔类型    c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0即为真. 分支语句中常用bool值做判断,判断执行if语句还是else语句. 循环结构中,也常使用bool值做判断,判断是否要执行循环. 注意事项: #define yes 1 #define no 0 计算机在识别时,yes就替换成1,no就替换成0. 二.关系运算符 >   >=   <

IOS学习笔记---C语言第四天

1 //?生成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相 加,放到另外?一个数组中 2 #import <Foundation/Foundation.h> 3 4 int main(int argc, const char * argv[]) 5 { 6 7 int num1[10]={0},num2[10]={0},num3[10]={0}; 8 for (int i = 0; i<10; i++) { 9 num1[i]=arc4random()%2

iOS学习笔记---c语言第八天

指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=null;   初始值:null恒等于0          变量类型:整型指针 int * 指针变量所占字节数只于操作系统有关 指针类型转换符%p printf("p = %p\n",p); //c语言定义指针的时候,喜欢使用p,q,r等. int *p = NULL; //我们通常所说的指针,

iOS学习笔记---c语言学习第七天

结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符  成员名: … 类型说明符  成员名: }: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { struct teacher{ char name[30]; char sex; int age; char course[30]; }; typedef struct teacher Teacher; Teacher c

iOS学习笔记---c语言第十天

动态内存分配 一.存储区划分 从低到高(内存地址小----内存地址大)  :  代码区---常量区---静态区---堆区---栈区 栈内存 //凡是在函数体内定义的变量 都存储在栈区(包括形参). int a = 10;//a也是在栈区域里面 float b = 1.5;//b也是在栈区域里面 char c = 'b'; double d = 3.14; printf("%p %p %p %p\n",&a,&b,&c,&d); //栈的特点先进后出,先定

iOS学习笔记---c语言第六天

函数  function 命名规范:工程名第一个字母大写,变量函数名小写,不要用拼音和中文, eg:lessonFunction 一.函数声明定义 函数是具有特定功能的代码块        作用:模块化程序 用函数的好处:简化程序.提高开发效率.方便阅读和修改等 函数定义: 返回值类型  函数名(形式参数) { 语句 return 返回值: }     返回值类型:viod  int  char float.....    void下面可以不写return    ,int  下面返回值为整型,c

iOS学习笔记---c语言第十一天

函数指针 一.函数指针定义 //函数声明:声明我是一个什么函数 //求两个数的和 //函数的类型:int (int x,int y) //即:我是一个返回值为整型,有两个整型参数的函数. //函数名是 sum int sum(int x,int y); 函数指针定义p是变量,其他是类型(通常没有形参a,b) //函数指针类型 int (*)(int x,int y) //描述:指向 返回值为 int 两个int参数 的 指针类型 //函数指针变量: p //初始值 : sum printf("%

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件