1,类型
分为字符型变量 和 字符型常量
字符型常量:单个字符,用一对单引号及其所括起来的字符来表示。
2,定义字符串变量
char op;
3,输入和输出
printf("%c",op) scanf("%c",op)
4,字符输入和输出函数
op=getchar() //只能读入一个字符
#include <stdio.h>
int main(){
char op;
op=getchar();
putchar(op);
return 0;
}
//输入'a' 输出'
putchar(输出参数) //输出参数是字符型变量和字符型常量
putchar('?') //输出?
5,ASCII码
- 大小写字母ASCII码不一样,比如大写字母A的ASCII码是65,小写字母a的ASCII码是97
- 同样字母,大写字母的ASCII码值比小写字母的ASCII码值小,比如大写字母A的ASCII码值65比小写字母a的ASCII码值97小。
- 大写字母A~Z的ASCII码值从65~90
- 小写字母a~z的ASCII码值从97~122
- 同样的字母,小写字母的ASCII码值比大写字母的ASCII码值大32,小写字母ASCII = 大写字母ASCII + 32
- 字符'1'的ASCII值为49,那么在内存单元中存放的是是49
6,混淆点
(1)字符A和'A'的区别是什么
A是个变量 'A'是一个字符
(2) 字符加单引号和不加单引号的区别是什么
有单引号是字符常量,没有,只能是个变量符号
(3)'a-A'是代表什么
这么写是错的,可以写成a-'A' 这表示得到a在字母中的序号,如a='A' 则,a-'A'=0
//a 是个变量
7,字符探讨
(1)字符型变量可以赋予整型
#include <stdio.h>
int main(){
char i;
int a;
i=49;
printf("i=%d\n",i);
printf("i='%c'",i);
return 0;
}
输出:
i=49
i='1'
(2)赋予字符型变量赋予字符型数据
#include <stdio.h>
int main(){
char i;
int a;
i='1';
printf("i=%d\n",i);
printf("i='%c'",i);
return 0;
}
输出:
i=49
i='1'
(3)字符型变量读入
#include <stdio.h>
int main(){
char i;
int a;
scanf("%c",&i);
printf("i=%d\n",i);
printf("i='%c'",i);
return 0;
}
输入:1
输出:i=49
i='1'
(4)整型变量读入
不能输入字符型数据
#include <stdio.h>
int main(){
char i;
int a;
scanf("%d",&a);
i=a;
printf("i=%d\n",i);
printf("i='%c'",i);
return 0;
}
输入:49
输出:
i=49
i='1'
(5)
#include <stdio.h>
int main(){
char i;
int a;
scanf("%d %c",&a,&i);
printf("a=%d\n",a);
printf("i=%d\n",i);
printf("i='%c'",i);
return 0;
}
输入:2 1
输出:
a=2
i=49
i='1'
8,逃逸字符
\t | 制表符 |
\b | 后退一格 |
\n | 换行 |
\" | 双引号 |
\' | 单引号 |
(1)制表符
不是固定大小是固定位置
#include <stdio.h>
int main(){
printf("123\t456\n");
printf("12\t456\n");
return 0;
}
输出:
123 456
12 456
(2)换行符、后退一格
根据shell不同而改变显示