串的基本概念和顺序串

一、 串的基本概念

串(或字符串),是由零个或多个字符组成的有穷序列。

含零个字符的串称为空串,用Ф表示。串中所含字符的个数称为该串的长度(或串长)。

通常将一个串表示成“a1a2…an”的形式。其中最外边的双引号本身不是串的内容,它们是串的标志,以便将串与标识符(如变量名等)加以区别。每个ai(1≤i≤n)代表一个字符。

当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。

一个串中任意个连续字符组成的子序列(含空串)称为该串的子串。例如,“a”、“ab”、“abc”和“abcd”等都是“abcde”的子串(真子串是指不包含自身的所有子串)。

二、串的顺序存储及其基本操作实现      

在顺序串中,串中的字符被依次存放在一组连续的存储单元里。一般来说,一个字节(8位)可以表示一个字符(即该字符的ASCII码)。

因此,一个内存单元可以存储多个字符。例如,一个32位的内存单元可以存储4个字符(即4个字符的ASCII码)。 

串的顺序存储有两种方法:一种是每个单元只存一个字符,这称为非紧缩格式(其存储密度小);另一种是每个单元存放多个字符,这称为紧缩格式(其存储密度大)。 

对于非紧缩格式的顺序串,其类型定义如下: 

#define MaxSize 100
typedef struct
{  char data[MaxSize];
   int length;

} SqString;

顺序串中实现串的基本运算如下:

(1)StrAssign(s,cstr)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值