10.31

发布时间 2023-10-31 22:27:01作者: 威猛彪悍大甜妹

10.31字符与字符串

字符

  • 字符在计算机中以ASCII码进行存储(从0到127->对应7位二进制)

    • 字符A```Z```的ASCII码值从6590
    • 字符a```z```的ASCII码值从97122
    • 对应的⼤⼩写字符(aA)的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,这个完全随机,在这中间的东西是什么也完全不知道,所以会出现乱码的情况