字符串是什么?

第一 串的定义
串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。
串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值。每个字符可以是字母、数字或任何其它的符号。零个字符的串(即:””)称为空串,空串不包含任何字符。值得注意的是:
在这里插入图片描述
串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串则称为主串。通常将字符在串中的序号称为该字符在串中的位置。子串在主串钟的位置则以该子串在主串中的第一个字符位置来表示。为了让大家更好的理解子串,举个简单的例子说明。如:

s2、s3、s4、s5都是s的子串,或者说s是s2、s3、s4、s5的主串,而s1不是s的子串。s3等于s5,s2不等于s4。s的长度是17,s3的长度是4,s4的长度是5。
第二 串的基本算法
串的基本算法在串的应用中广泛使用,这些基本算法不仅加深了对串的理解,更简化了日后对串的应用。下面还是通过举例介绍串的常用基本算法。
假设有以下串:s1=“I am a student”,s2=“teacher”,s3=“student”,常用的串的基本运算有下列几种:
(1)Assign(s,t),将t的值赋给s。
(2)Assign(s4,s3)或Assign(s4,“student”)后,s4="student"。
(3)Length(s),求s的长度。
(4)Length(s1)=14,Length(s3)=7。
(5)Equal(s,t),判断s与t是否相等。
(6)Equal(s2,s3)=false,Equal(“student”,s3)=true。
(7)Concat(s,t),将t连接到s的末尾。如:Concat(s3, " number")= “student number”。
(8)Substr(s,i,len),求子串。如:Substr(s1,7,7)= “student”,Substr(s1,10,0)= “”, Substr(s1,0,14)= “I am a student”。
(9)Insert(s,i,t),在s的第i个位置之前插入串t。 Insert(s3,0,“good_”)后,s3="good_student"。
(10)Delete(s,i,len),删除子串。ss=“good_student”,Delete (ss,0,5)后,ss="student"。
(11)Replace(s,u,v),子串替换,即将s中的子串u替换为串v。 Replace(s1,s3,s2)后,s1=“I am a teacher”,Replace(s1,“worker”,s2)后s1的值不变。 若ss=“abcbcbc”,则:Replace(ss,“cbc”,“x”)后,ss="abxbc",Replace(ss,“cb”,“z”)后,ss="abzzc"。
(12)index(s,t),子串定位,即求子串t在主串s中的位置。 index(s1,s3)=7,index(s1,s2)=-1,index(s1, “I”)=0。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值