- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串类型的定义串
1 串串类型的定义 串串((字符串字符串))::是零个或多个字符组成的有限序列是零个或多个字符组成的有限序列。。 记作: S=“a a a …”,其中S是串名,a (1 ≦i ≦n)是单 1 2 3 i 个个,可以是字母可以是字母、数字或其它字符数字或其它字符。 串值:双引号括起来的字符序列是串值。 串长:串中所包含的字符个数称为该串的长度。 空串空串((空的字符串空的字符串))::长度为零的串称为空串长度为零的串称为空串,它不它不 包含任何字符。注意与空格串区别。 子串(substring):串中任意个连续字符组成的子序列 称为该串的子串称为该串的子串,包含子串的串相应地称为主串包含子串的串相应地称为主串。 子串的序号:将子串在主串中首次出现时的该子串的首 字符对应在主串中的序号,称为子串在主串中的序号 (或位置)。 例如,设有串A和B分别是: AA=“JING“JING””,BB=“BEIJING“BEIJING””, 则A是B的子串,B为主串。A在B中出现出现所对应的 主串位置是4 。 特别地,空串是任意串的子串,任意串是其自身的 子串子串。 串相等:如果两个串的串值相等(相同),称这两个 串相等。换言之,只有当两个串的长度相等,且各个对 应位应位置的字符都相同时才相等的字符都相同时才相等。 通常在程序中使用的串可分为两种通常在程序中使用的串可分为两种:串变量和串常量串变量和串常量。 串常量和整常数、实常数一样,在程序中只能被引用 但不能不能改变其值,即只能读不能写。 串变量和其它类型的变量串变量和其它类型的变量一样样,其值是可以改变其值是可以改变。 串串的存存储表表示和实实现 串是串是一种特殊的线性表种特殊的线性表,,其存储表示和线性表类似其存储表示和线性表类似,, 但又不完全相同。串的存储方式取决于将要对串所进行 的操作的操作。串在计算机中有串在计算机中有33种表示方式种表示方式:: ◆ 定长顺序存储表示:将串定义成字符数组,利用串 名可以直接访问串值名可以直接访问串值。用这种表示方式用这种表示方式,串的存储空间串的存储空间 在编译时确定,其大小不能改变。 ◆ 堆分配存储方式:仍然用一组地址连续的存储单元 来依次存储串中的字符序列,但串的存储空间是在程序 运行时根据串的实际长度动态分配的。 ◆◆ 块链存储方式块链存储方式::是是一种链式存储结构表示种链式存储结构表示。。 串串的定长顺序存序存储表示 这种存储结构又称为串的顺序存储结构。是用一 组连续的存储单元来存放串中的字符序列。所谓定长顺 序存储结构序存储结构,,是是直接使用定长的字符数接使用定长的字符数组来定义来定义,,数数组 的上界预先确定。 定长顺序存储结构定义为定长顺序存储结构定义为: #define MAX_STRLEN 255 typedef usigned char Sstring[MAX_STRLEN+1]; //0//0号单元存放串的长度号单元存放串的长度 1 串的连接操作 Status Concat(SString T, SString S1, SString S2) { // 算法4.2 //// 用用TT返回由返回由S1S1和和S2S2联接而成的新串联接而成的新串。若未截断若未截断,则返回则返回TRUETRUE,否则否则FALSEFALSE。 int i; Status uncut; if (S1[0]+S2[0] = MAXSTRLEN) { // 未截断 for (i=1; i=S1[0]; i++) T[i] = S1[i]; for (i=1; i=S2[0]; i++) T[i+S1[0]] = S2[i]; T[0] = S1[0]+S2[0]; uncut = TRUE; }} else if ((S1[
文档评论(0)