字符和字符串|学习笔记

简介: 快速学习字符和字符串

开发者学堂课程【你的第一门 C 语言课字符和字符串】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/444/detail/5458


字符和字符串


目录:

一.案例:代码展示

二.如何给字符串赋值

 

一, 案例:代码展示

/**

*问题一:字符变量可以用来存放整数吗?

int main( ){char a = ‘C’;printf("%c = %d\n”,a,a);return 0;

}

*输出的结果如下图:

图片84.png

*假设此处的字符是否也运用了查表的原理?

*答案是肯定的。

*查表查询的是标准 ,这个表格是设计者在设计之初

*为了便于计算机存储数据设置的。

*标准 ASCII 字符表使用7位二进制数来表示所有的大写和小写字母,*数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。

*其中,ASCII 字符表上的数字0~31以及127(共33个)分配给了控*制字符,用于控制像打印机等一些外围设备:

图片85.png

ASCII 字符表上的数字32~126分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现:

图片86.png

*之前我们编译的程序输出的 C 的值也可以在 ASCII 字符表上找到对*应的值

图片87.png

*新需求:

int main( ){char a = 70, b= 105, c=115 ,d=104, e= 67;printf("%c%c%c%c%c\n”,a,b,c,d,e);return 0;

}

*打印的结果如下:

图片88.png

*为什么输入的是数字,打印的却是字符呢?

因为我们在输出的时候*指定了字符 C,所以系统会自动去扫描 ASCII 字符表,*打印的 FishC 的结果出来。

结论,字符类型实际上就是一个特殊的*整型。这里可以通过查看下表来理解整型的取值范围。区别在于,

*对于整型而言,不写 unsigned,系统会默认成是 int 类型。在 C 语*言里并没有规定字符串类型 char 类型是 char 还是 unsigned char。

*细节就是这些规定都是由编译系统自己决定。 

举例:一位程序员需

*要使用某个字符串类型来存放身高这项数据。此时的编译系统会给*他分配 char 还是unsigned char 呢?如果是 unsigned char 则刚

*够用,下面就用一个简单的程序来演示一下:

图片89.png

int main( ){char height;height = 170;printf(""小甲鱼的身高是%d厘米 \n", height);return 0;

}

*运行的结果如下图所示:

图片90.png

*这里给我们的经验教训是不要去想当然,注意程序的跨平台性。

*需要注意到它的取值范围是0~255,注意到这个细节后的输出结果

*为:

图片91.png


二, 如何给字符串赋值

  • 字符串

-char 变量名[数量]

  • 声明字符串

-char name [5]

//索引号是从0开始计算的,故它的值为0,1,2,3,4.

//可以通过索引号来获取对应的内存空间。

  • 给字符串赋值:

name[0] = ‘F’;

name[1] = ‘i’;

name[2] = ‘s’;

name[3] = ‘h’;

name[4] = ‘C’;

  • 定义字符串:

Char name[5] = {‘F’,’i’,’s’,’h’,’c’};

实例:

Int main()

{

Char a [5] = {‘F’,’I’,’s’,’h’,’c’};

Print {“%s\n”,a};

Print{“Hello\n”};

Return 0;

}

//运行结果出现乱码:

图片92.png

//报错原因,缺少了\

//修改后的代码如下所示:

Int main()

{

Char a [6] = {‘F’,’I’,’s’,’h’,’c’,’\0’};

Print {“%s\n”,a};

Print{“Hello\n”};

Return 0;

}

//运行结果恢复正常:

图片93.png

//对该部分代码进行如下优化,省去了数的环节:

Int main()

{

Char a [] = {“FishC”};

Print {“%s\n”,a};

Print{“Hello\n”};

Return 0;

}

//这里不用添加\,系统会自动给用户进行补充。

//运行结果如下图:

图片94.png

相关文章
|
7月前
|
存储 算法 编译器
|
1月前
|
JavaScript 前端开发 Java
字符串运用
【10月更文挑战第17天】
|
6月前
|
C#
C# 中的字符与字符串
C# 中的字符与字符串
|
7月前
|
自然语言处理
字符范围
字符范围
118 2
获取字符串内双引号中的所有内容
获取字符串内双引号中的所有内容
151 0
获取字符串内双引号中的所有内容
C#编程-39:字符和字符串笔记
C#编程-39:字符和字符串笔记
105 0
C#编程-39:字符和字符串笔记
|
存储 Shell 程序员
字符和字符串
一.案例:代码展示 二.如何给字符串赋值
字符和字符串
|
开发工具
字符串最大跨距
字符串最大跨距
240 0