系列文章参考资料为《大话数据结构》,源码为个人私有,未经允许不得转载 技术交流群或资料添加微信号:CoderAllen,回复关键字即可
串是什么?串(string)是由零个或多个字符组成的有限序列,又名叫字符串
空格串:是只包含空格的串,注意他与空串的区别,空格串是有内容有长度的,二期可以不止一个空格 子串和主串:串中任意个数的连续字符组成的子序列称为该串的子串,相应的,包含子串的串称为主串
串的比较:串的比较是通过组成串的字符之间的编码来进行的,而字符的编码指的是字符在对应字符集中的序号
计算机中常用的字符是使用标准的ASCII编码,是由7位二进制数表示的一个字符,总共可以表示128个字符
后来由于一些特殊符号的出现,128个是不够用的,扩展ASCII码由8位二进制数表示一个字符,总和可以表示256个字符,基本可以满足英语为主的语言和特殊字符需要
不过对于全世界估计要成百上千种语言,256个字符肯定是不够的,于是有了Unicode编码,常用16位的二进制表示一个字符,总共可以表示216个字符,约65万多字符,足够表示世界上所有语言的所有字符,为了兼容,其前256个字符与ASCII相同
所以我们比较串,必须他们串的长度和他们对应位置的字符都相等时,才算是相等
串的抽象数据类型:串的逻辑结构和线性表很相似,不同的地方在于串针对的是字符集,也就是串中的元素都是字符
因此对于串的基本操作和线性表是很大差别的,线性表更关注单个元素的操作,比如查找一个元素,插入或者删除一个元素,但是串中国更多的是查找子串位置,得到指定位置子串,替换子串等操作
使用了strlength,substring,strcompare等基本操作实现
/* T为非空串。若主串S中第pos个字符之后存在与T相等的子串, */
/* 则返回第一个这样的子串在S中的位置,否则返回0 */
int Index(String S, String T, int pos)
{
int n,m,i;
String sub;
if (pos > 0)
{
n = StrLength(S); /* 得到主串S的长度 */
m = StrLength(T); /* 得到子串T的长度 */
i = pos;
while (i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?