- 1、本文档共184页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲堆栈、队列和字符串要点
void get_nextval(SString T, int nextval[]) { i = 1; nextval[1] = 0; j = 0; while (i T[0]) { if (j = 0 || T[i] == T[j]) { ++i; ++j; if (T[i] != T[j]) nextval[i] = j; else nextval[i] = nextval[j]; } else j = nextval[j]; } } // get_nextval 串C++实现 class String { public: // methods of the string ADT String(); ~String(); String (const String copy); // copy constructor String (const char * copy); // conversion from C-string String (Listchar copy); // conversion from List void operator =(const String copy); const char *c_str() const; // conversion to C-style string protected: char *entries; int length; }; 串比较运算符重载 bool operator ==(const String first, const String second); bool operator (const String first, const String second); bool operator (const String first, const String second); bool operator =(const String first, const String second); bool operator =(const String first, const String second); bool operator !=(const String first, const String second); 串构造函数(1) String::String (const char *in_string) { length = strlen (in_string); entries = new char[length + 1]; strcpy (entries, in_string); } 串构造函数 String::String (Listchar in_list) { length = in_list.size(); entries = new char[length + 1]; for (int i = 0; i length; i++) in_list.retrieve(i,entries[i]); entries[length] = \0; } 将C++串转换为C语言串 const char*String::c_str() const /* Post: A pointer to a legal C-string object matching the String is returned. */ { return (const char *) entries; } 串比较实现 bool operator ==(const String first, const String second) { return strcmp(first.c_str(), second.c_str()) == 0; } bool operator (const String first, const String second) { return strcmp(first.c_str(), second.c_str()) 0; } 进一步串操作示例(1) void strcat(String add_to, const String add_on) { const char *cfirst = add_to.c_str(); c
您可能关注的文档
- 第3章表的编辑操作要点.ppt
- 第3章表达式和语句要点.ppt
- 第3章设置绘图环境要点.ppt
- 第3章表的基本操作要点.ppt
- 第3章运算符重载要点.ppt
- 第3章离合器设计要点.ppt
- 第3章货物入库作业要点.ppt
- 第3章立体化学要点.ppt
- 第3章食品工厂总平面设计要点.ppt
- 第3节_平均速度与瞬时速度要点.ppt
- T_CQAP 3015—2025(人间充质干细胞药品生产和质量控制规范).pdf
- T_SDYZXCP 015.401—2025(优质猪肉生产技术规程 第4部分:饲料 发酵姜秧).pdf
- T_CMEAS 045—2025(脓毒症多组学数据库建设及应用).pdf
- T_ZNZ 343.4—2025(文成杨梅生产标准综合体第4部分:栽培管理).pdf
- T_SCSZX 002—2025(竹浆生活用纸).pdf
- T_CNEA 249.8—2024(核工业用锆及锆合金化学分析方法 第8部分:表面氟含量的测定 分光光度法).pdf
- T_CNEA 249.1—2024(核工业用锆及锆合金化学分析方法 第1部分:碳量的测定 高频燃烧红外吸收法).pdf
- T_SDYZXCP 015.201—2025(优质猪肉生产技术规程 第2部分:营养需要 大蒲莲猪生长育肥期).pdf
- T_CNEA 249.3—2024(核工业用锆及锆合金化学分析方法 第3部分:氧量和氮量的测定 惰性气体熔融-红外热导法).pdf
- T_CNEA 249.2—2024(核工业用锆及锆合金化学分析方法 第2部分:硫量的测定 高频燃烧红外吸收法).pdf
文档评论(0)