1、数据结构与算法第三章 字符串主讲人 张铭http:/ 字符串抽象数据类型n3.2 字符串的存储结构和类定义n3.3 字符串运算的算法实现n3.4 字符串的模式匹配版权所有,转载或翻印必究 Page 23.1字符串抽象数据类型 n3.1.1 基本概念n3.1.2 String抽象数据类型版权所有,转载或翻印必究 Page 33.1.1 基本概念n 字符串 ,由 0个或多个字符的顺序排列所组成的复合数据结构,简称 “串 ”。n 串的 长度 :一个字符串所包含的字符个数。n 空串 :长度为零的串,它不包含任何字符内容。版权所有,转载或翻印必究 Page 43.1.1.1字符串常数和变量n 字符串常数
2、n 例如: “n“n 字符串变量版权所有,转载或翻印必究 Page 53.1.1.2 字符n 字符 (char) : 组成字符串的基本单位 。n 在 C和 C 中n 单字节( 8 bits)n 采用 ASCII码对 128个符号(字符集 charset) 进行编码 版权所有,转载或翻印必究 Page 63.1.1.3 字符的编码顺序 n 为了字符串间比较和运算的便利,字符编码表一般遵循约定俗成的 “偏序编码规则 ”。n 字符偏序 :根据字符的自然含义,某些字符间两两可以比较次序。n 其实大多数情况下就是字典序n 中文字符串有些特例,例如 “笔划 ”序版权所有,转载或翻印必究 Page 73.1
3、.1.4 C+标准 string n 标准字符串:将 C+的函数库作为字符串数据类型的方案。n 例如: char SM;n 串的结束标记: 0n0是 ASCII码中 8位 BIT全 0码,又称为 NULL符。版权所有,转载或翻印必究 Page 83.1.1.4 C+标准 string(续 )n 1. 串长函数int strlen(char *s);n 2. 串复制char *strcpy(char *s1, char*s2);n 3 串拼接 char *strcat(char *s1, char *s2);n 4 串比较 int strcmp(char *s1, char *s2);版权所有,转载或翻印必究 Page 93.1.1.4 C+标准 string(续 )n 5输入和输出函数n 6定位函数 char *strchr(char *s, char c);n 7 右定位函数 char *strrchr(char *s, char c);版权所有,转载或翻印必究 Page 10