字符串的顺序存储和链表存储的差异?c语言中是如何实现字符串的?,实验三 串基本操作的编程实现知识分享.doc...

实验三 串基本操作的编程实现

【实验目的】

内容:串基本操作的编程实现

要求:

串基本操作的编程实现(2学时,验证型),掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、剪裁等操作,存储结构可以在顺序结构或链接结构、索引结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。

【实验性质】

验证性实验(学时数:2H)

【实验内容】

字符串用常规的顺序存储法来存储,实现常用的功能。

自己编程模式:开发一个程序,用来统计文件中各种信息,如字符个数,行数等。

修改程序模式:将下面程序空白的地方填空。

程序检查模式:将本文件夹中的程序运行后总结相关功能。

【思考问题】

字符串的顺序存储和链表存储的差异?C语言中是如何实现字符串的?

在字符串处理方面主要有什么操作?

字符串的操作的主要特点是什么?

举出几个字符串的应用范例?

【参考代码】

//功能:顺序串的基本基本功能

#include

#include

#include

#include

#define maxsize 30//顺序串的总空间大小

enum returninfo{success,fail,overflow,underflow,range_error,empty};//定义返回信息清单

class string

{

public:

string();//构造函数

~string();//析构函数

returninfo strcreate(); //创建串

returninfo strinsert(int position,char newstr[],int str_length); //插入

returninfo strdelete(int beginposition,int endposition); //删除

returninfo strmodify(int beginposition,int endposition,char newstr[]); //修改

int strsearch(char newstr[]); //查找

void strtraverse(); //遍历

int strlength();//求串长

private:

char *str; //串

int length; //长度

};

string::string()

{

str=new char[maxsize];//申请数组空间

}

string::~string()

{}

returninfo string::strcreate()

{

int i=-1,ch;

cout<

while((ch=getch())!=26)

{

cout<

i++;

if(ch!=13)

str[i]=char(ch);

else i=i-1;

cout.flush();//为了每次输入后可以立即显示所输入的字符,则先清除缓冲区

}

length=i+1;

cout<

return success;

}

returninfo string::strinsert(int position,char newstr[],int str_length)

//当插入的字符串在原串末尾时,就相当于合并

{

return success;

}

returninfo string::strdelete(int beginposition,int endposition)

{

return success;

}

returninfo string::strmodify(int beginposition,int endposition,char newstr[])

{

return success;

}

int string::strsearch(char newstr[])

{

int i=0,str_length,position=0,count=0; //是否相等标志,count用来确定比较时原串的移动

if(length==0)

return -1;

str_length=strlen(newstr);

for(;i

{

if(str[i]==newstr[count])

{posit

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值