C 语言 字符型
字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。
在给字符型变量赋值时,需要用一对英文半角格式的单引号' '
把字符括起来。
字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。
字符型声明
c
#include <stdio.h>
int main()
{
char ch = 'a';
// 打印字符变量
printf("%c\n", ch);
// 查看字符型的内存字节
unsigned int len = sizeof(ch);
printf("%d\n", len);
// 以 %d 打印时,是字符串的十进制 ascii 码值
printf("%d\n", ch); // 97
char A = 'A';
printf("%d\n", A); // 65
// 两个字符型相减时以 10 进制的 ascii 码值相减
printf("%d\n", ch - A); // 32
return 0;
}
字符型输入
用 ASCII 码值减去插值,输入一个小写字母转换成大写。ASCII 码表
c
int main(){
char ch;
printf("输入一个小写字母转换成大写\n");
scanf("%c", &ch);
// 用 ASCII 码值减去插值得到大写的值,再以 %c 输出为字符串
printf("%c\n", ch - 32);
return 0;
}
转义字符打印
c
int main()
{
printf("abc\n123");
printf("\reff\n"); //\r切换到句首,会把当前行的12替换掉 \n为换行键
printf("abc");
printf("\befg\n");//\b为退格键,删除了c \n为换行键
printf("%d\n", '\123');// '\123'为8进制转义字符,0123对应10进制数为83
printf("%d\n", '\x23');// '\x23'为16进制转义字符,0x23对应10进制数为35
printf("%%"); // 打印 %
return 0;
}
字符串格式化输出和输入
c
#include <stdio.h>
int main()
{
char a = 'a';
char* b = "abc"; // 相当于 abc\0 结尾
char* c = "abc\0 def";
printf("%c\n", a); // a
printf("%s\n", b); // abc
// %s 表示输出字符串,找到 \0 停止
printf("%s\n", c); // abc
char d[3] = "abc"; // abc 占了3个字符 相当于把结尾的 \0 去掉了
printf("%s\n", d); // 输出就会乱码
return 0;
}