欢迎来到天天文库
浏览记录
ID:50323138
大小:269.00 KB
页数:47页
时间:2020-03-08
《数据结构与算法 教学课件 作者 张晓蕾 第六章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第6章字符串字符与字符串的概念6.1C风格串存储结构与运算6.2字符串类6.3模板容器与字符串类6.46.1字符与字符串的概念串是指由n(n≥0)个字符组成的有限序列,一般记为s="c0c1……cn-1"其中s是串名,串中的ci(0≤i≤n-1)是单个字符,可以是字母、数字或其它字符;用一对引号括起来的字符序列是串的值。但引号不属于串,它只是给串定界;n是串的长度,若n=0,则s称为空串,通常用相邻的一对引号来表示。一个串的子串是该串中任一连续的子序列。C++字符主要有三种:带符号字符、无符号字符或未指定的字符,默认字
2、符是带符号的。标准C++中,char是最常用的一种基本数据类型,其大小是8位(bit),即1个字节。用单引号括起来的一个或若干个字符就是一个字符常量。1.基于char的字符串户完整地提供了C字符串,即有两种形式的串可供使用:一种是字符指针,另一种是字符数组。它们可分别定义为char*变量名;//字符指针char变量名[下标数];//字符数组unsignedchar也是一种常用的基本数据类型,其大小也是8bit,即1个字节。基于unsignedchar的字符串称为多字节(multi-byte)字符串,它与基于char的普
3、通字符串十分相似,可以声明其字符指针和字符数组。2.基于unsignedchar的字符串标准C++中,wchar_t是另一种基本字符数据类型,称为宽字符类型,可以表示最大扩充字符集任何元素的编码。3.基于wchar_t的字符串宽字符类型wchar_t定义在头文件中。wchar_t类型定义作为unsignedshort数据对象,其大小按Unicode标准是16bit(2个字节)。在C++程序中,使用宽字符常量须在字符之前加一个字符L。例如:wchar_tch=L'A';总结:三种C++字符串的字符指针
4、和字符数组的定义char/unsignedchar/wchar_t*变量名;//字符指针char/unsignedchar/wchar_t变量名[下标数];//字符数组6.2C风格串存储结构与运算6.2.1C风格字符串的顺序存储结构串的几种常用存储结构。(1)紧缩格式(2)非紧缩格式(3)以单字节为单位的存储格式(4)以多字节为单位的存储格式详见教材p.135。由于各种串运算与串的存储方式密切相关,若要随机存取串中第k个字符,顺序存储结构显然比较方便;若要对串进行插入、删除等操作,顺序存储结构相对比较麻烦,这时链表存储
5、则显示出明显的优越性。详见教材p.135-136。6.2.2C风格串的链表存储结构1.基于char的字符串运算在C++语言中,基于char的字符串(C串)的常用库函数定义在头文件中,说明如表6-1所示。6.2.3C风格串的运算函数调用格式使用说明strlen(s)返回字符串s的实际长度。strcpy(s1,s2)把字符串s2复制到字符串s1,s1应足够长,否则将出错。strcat(s1,s2)将字符串s2连接到字符串s1后,结果放在字符数组s1中。字符串应足够长,否则将出错。strcmp(s1,s2
6、)比较两个字符串。若s1等于s2,则返回0;若s1大于s2,则返回正数;若s1小于s2,则返回负数。strstr(s1,s2)s1是母串,s2是子串。找出子串在母串中出现的位置,并返回该指针。若未找到子串,则返回NULL。表6-1基于char的字符串常用库函数在C++语言中,基于unsignedchar的字符串的常用库函数说明如表6-2所示。要使用基于unsignedchar的字符串必须有下面的包含:#include2.基于unsignedchar的字符串运算函数调用格式使用说明_mbslen(
7、s)返回多字节字符串s的实际长度。_mbscpy(s1,s2)将字符串s2复制到字符串s1。_mbscat(s1,s2)把多字节串s2连接到多字节串s1后,结果存放在s1。_mbscmp(s1,s2)比较两个多字节字符串。_mbsstr(s1,s2)多字节字符串s1是母串,多字节字符串s2是子串,找出子串在母串中出现的位置,并返回该指针。表6-2多字节字符串的常用库函数在C++语言中,基于wchar_t的字符串的常用库函数说明如表6-3所示。要使用宽字符串必须有下面的包含:#include3.基于w
8、char_t的字符串运算函数调用格式使用说明wcslen(s)返回宽字符串的实际长度。wcscpy(s1,s2)把宽字符串s2复制到宽字符串s1。wcscat(s1,s2)增补宽字符串s2的备份加到宽字符串s1后面。wcscmp(s1,s2)比较两个宽字符串。wcsstr(s1,s2)宽字符串s1是母串,宽字符串s2是子串,找出子
此文档下载收益归作者所有