10.31字符与字符串
字符
-
字符在计算机中以ASCII码进行存储(从0到127->对应7位二进制)
- 字符
A
```Z```的ASCII码值从6590 - 字符
a
```z```的ASCII码值从97122 - 对应的⼤⼩写字符(
a
和A
)的ASCII码值的差值是32 - 数字字符09的ASCII码值从4857
- 换⾏
\n
的ASCII值是:10
第一位二进制位代表扩展位,所以只有7位供编码,一共有2^7个字符
- 字符
-
0到31位不可打印
-
示例:打印可打印字符
#include <stdio.h>
int main()
{
int i = 0;
for (i=32; i<=127; i++)//代表变量i从32开始循环到127
{
if (i % 16 == 0)//每16个答应换行符(‘\n’)以换行
printf("\n");
printf(" %C ", i);//i是数字,但使用占位符'%c'打印字符,所以进行了ASCII码的转换
}
return 0;
}
打印结果:
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
字符串
-
字符串以
\0
代表字符串的结尾,使用占位符%s
打印字符串时,遇到\0
(ASCII码00)停止#include<stdio.h> int main() { char arr[] = {'a','b','c'}; char arr1[] = "abc"; printf("%s\n",arr); printf("%s\n",arr1); return 0; }
打印结果:
abc(随机乱码) abc
原因:
对
arr
,计算机一直向后寻找\0
,这个完全随机,在这中间的东西是什么也完全不知道,所以会出现乱码的情况