数据结构--串--定长顺序存储表示

本文探讨数据结构中串的定长顺序存储表示,常见于C++编程。通过MAXSTRLEN常量定义最大串长为255,使用unsigned char数组SString存储,其中0号单元保存串长度。内容包括文件初始化串、串连接和查找子串的操作。

数据结构的串有三种表示方式:定长顺序存储表示,堆分配存储表示,块链存储表示。其中较常用的是前两种表示方式。下面讨论第一种表示方式。

//---------------------------------------------------------------------------------------------

#define MAXSTRLEN 255 //用户可在255以内定义最大串长

typedef unsigned char SString[MAXSTRLEN+1]; //0号单元存储串的长度

//---------------------------------------------------------------------------------------------

(ps:这个MAXSTRLEN定义的实在是太有水平了,char的存储长度为一个字节,8个位,可以表示的最大数值是(2^9-1)=255,所以可把串的长度放到SString[0]中,而不会出错)

以下代码实现用文件初始化串变量,将两个串连接成一个串,求一个串的字串。

const int MAXSTRLEN=255;
typedef unsigned char SString[MAXSTRLEN+1];//0号单元存储串的长度

Status CreateFile(string filename,int charnum,char c){//创建一个名为filename的文件,其中含有charnum个字符c
    ofstream outfile(filename.c_str());
    if(!outfile) return ERROR;
    for(int i=0;i<charnum;++i)
        outfile<<c;
    return true;
}

Status InitSStringWithFile(SString &s,string filename){
    ifstream infile(filenam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值