第8章 字符串.ppt

第8章 字符串.ppt

ID:48255605

大小:422.00 KB

页数:57页

时间:2020-01-18

第8章 字符串.ppt_第1页
第8章 字符串.ppt_第2页
第8章 字符串.ppt_第3页
第8章 字符串.ppt_第4页
第8章 字符串.ppt_第5页
资源描述:

《第8章 字符串.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章字符串8.1字符串8.2函数间字符串的传递习题8.1字符串8.1.1字符串常量1.定义字符串常量是由一对双引号括起来的字符序列。例如,"China","Howareyou","$abc","123569","string"等都是合法的字符串常量。2.说明(1)双引号仅仅起到字符串常量的边界符作用,并不是字符串常量的一部分。(2)注意区分字符串常量和字符常量的区别。例如,"c"和'c'是根本不同的数据,前者是字符串常量,后者是字符常量。它们之间主要有以下区别:   ①字符常量由单引号括起来,字符串常量由双引号括起来;   ②字符常量只能是单个字符,字符串常量则可以含一个或多个字符;

2、   ③可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量;   ④字符常量占一个字节的内存空间。8.1.2字符串的存储C语言规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。同时C语言也规定:以字符''作为字符串的结束标志。字符''是一个ASCII码为0的字符。从ASCII代码表中可以看到,ASCII码为0的字符是“空操作字符”,它不引起任何控制动作,也不是一个可显示的字符,即它什么也不做。用它作为字符串结束标志不会产生附加的操作或增加有效字符,它只是一个供辨别的标志。   因此,字符串常量在内存中所占的字节数等于字符

3、串中有效字符所占的字节数(即有效字符的个数)再加1个字节。增加的一个字节存放的是字符串结束的标志''。例如:字符串"Welcome"在内存中所占的字节为:注意区分字符串常量和字符常量的区别。例如"s"和's',字符串常量"s"和字符常量's'虽然都只有一个字符,但在内存中的情况是不同的。字符串"s"在内存中占2个字节,可表示为:   字符's'在内存中占一个字节,可表示为:   注意:在写字符串时不必加'',''字符是系统自动加上的。8.1.3字符串的表示1.字符数组C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。C语言允许用字符串的方式对字符数组

4、作初始化,即可以用字符数组存放一个字符串。   例如:charc[]={'W','e','l','c','o','m','e'};可写为:charc[]={"Welcome"};也可以省略花括号,直接写为:charc[]="Welcome";注意:用字符串方式赋值比用字符逐个赋值要多占一个字节,多占的字节用于存放字符串结束标志''。因此,以下两个字符数组的初始化等价,其字符数组的长度都是8。charc[]="Welcome";charc[]={'W','e','l','c','o','m','e',''};字符数组完整的应用程序举例如下:/*源程序8-1*/#include"s

5、tdio.h"main(){charstring[]="WelcometoChina!";printf("%s",string);}程序运行结果如下:2.字符指针也可以不定义字符数组,而定义一个字符指针,用字符指针指向字符串中第一个字符的地址。/*源程序8-2*/#include"stdio.h"main(){char*string="WelcometoChina!";printf("%s",string);}程序运行结果如下:3.字符数组和字符指针变量的区别(1)字符数组有若干个元素,每个元素中存放一个字符;而字符指针变量中存放的是字符串中第一个字符的地址。(2)赋值方式的不

6、同。   例如:字符指针的赋值语句:char*string="Welcome";它等价于:char*string;string="Welcome";因为可以将字符串的首地址存放在指针变量中。而字符数组的赋值语句:charstring[]="Welcome";它不等价于:charstring[];string[]="Welcome";因为string表示字符数组的首地址,是常量,不能在赋值号的左端进行修改,不能将字符串的首地址赋值给数组名。(3)字符数组在编译时为其分配存储单元,有确定的地址;字符指针分配的内存单元只能存放一个字符变量的地址,若没有赋值,则没有确定的指向。charstri

7、ng[20];scanf("%s",string);以上语句是正确的。char*p;scanf("%s",p);以上语句是错误的,因为字符指针没有指向任何存储空间, 不能输入字符串。应改成:charstring[20],*p;p=string;scanf("%s",p);(4)指针变量的值可以改变,是变量;数组名是常量,它的值是不能改变的。/*源程序8-3*/#include"stdio.h"main(){char*string="Welcom

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。