首页 / 算法 / 结构笔记—串的基本操作及串的模式匹配算法
结构笔记—串的基本操作及串的模式匹配算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了结构笔记—串的基本操作及串的模式匹配算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1946字,纯文字阅读大概需要3分钟。
内容图文
![结构笔记—串的基本操作及串的模式匹配算法](/upload/InfoBanner/zyjiaocheng/1203/0f02657857214d33a3709d517535084b.jpg)
下面实现几种串的基本操作,这些操作是构成串其他复杂操作的基石。因为相对简单,功能和分析的说明均在代码实现中。
/* 动态分配存储结构 */ typedef struct { char *ch; int length; }Str; /*赋值操作*/int strAssign(Str &str, char *ch) { if(str.ch) free(str.ch); //释放原串空间int len = 0; char *c = ch; while(*c) //求ch串长度 { len++; c++; } if(len == 0) //如果ch为空串,则直接返回空串 { str.ch = NULL; str.length = 0; return1; } str.ch = (char*)malloc(sizeof(char) * (len+1)); //取len + 1是为了多分配一个空间存放“\0”字符if(str.ch == NULL) //申请空间失败return0; c = ch; for(int i = 0; i <= len; i++) //注意:循环条件"<="是为了将ch最后的‘\0‘复制到新串中作为结束标志 str.ch[i] = *(c++); str.length = len; return1; } /*求串长度*/int StrLength(Str str) { return str.length; } /*串比较操作 *串的比较操作是串排序的核心操作 */int strCompare(Str s1, Str s2) { for(int i = 0; i < s1.length && i < s2.length; i++) { if(s1.ch[i] != s2.ch[i]) return s1.ch[i] - s2.ch[i]; } return s1.length - s2.length; } /*串连接操作 *将两个串首位连接,合成一个字符串的操作称为串连接操作 */int concat(Str &str, Str s1, Str s2) { if(str.ch) free(str.ch); str.ch = (char*)malloc(sizeof(char) * (s1.length + s2.length +1)); if(str.ch == NULL) return0; int i = 0; while(i < s1.length) str.ch[i] = s1.ch[i++]; int j = 0; while(j <= s2.length) str.ch[i+j] = s2.ch[j++]; str.length = s1.length + s2.length; return1; } /*求子串操作 *求从给定串中某一位置开始到某一位置结束的操作称为求子串操作(规定开始位置总是在结束位置前边) *以下代码实现求串中从pos位置开始,长度为len的子串,子串由subStr返回给用户 *函数返回:成功1,失败0 */int subStr(Str &subStr, Str str, int pos, int len) { if(pos < 0 || len < 0|| pos + len > str.length) return0; if(subStr.ch) free(subStr.ch); if(len == 0) { subStr.ch = NULL; subStr.length = 0; return1; } subStr.ch = (char*)malloc(sizeof(char) * (len+1)); if(subStr.ch == NULL) return0; int i = 0, j = pos; while(j < pos + len) subStr.ch[i++] = str.ch[j++]; subStr.ch[i] = ‘\0‘; subStr.length = len; return1; } /*串清空操作*/int clearStr(Str &str) { if(str.ch) { free(str.ch); str.ch = NULL; } str.length = 0; return1; }
串的匹配模式算法
原文:https://www.cnblogs.com/evenleee/p/8545149.html
内容总结
以上是互联网集市为您收集整理的结构笔记—串的基本操作及串的模式匹配算法全部内容,希望文章能够帮你解决结构笔记—串的基本操作及串的模式匹配算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。