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

导读:实验三串基本操作的编程实现,【实验目的】,内容:串基本操作的编程实现要求:,串基本操作的编程实现(2学时,掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、剪裁等操作,也可以全部实现,也鼓励学生利用基本操作进行一些应用的程序设计,【实验性质】,验证性实验(学时数:2H),【实验内容】,实现常用的功能,自己编程模式:开发一个程序,1.字符串的顺序存储和链表存储的

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

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

【实验目的】

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

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

【实验性质】

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

【实验内容】

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

自己编程模式:开发一个程序,用来统计文件中各种信息,如字符个数,行数等。 修改程序模式:将下面程序空白的地方填空。

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

【思考问题】

1. 字符串的顺序存储和链表存储的差异?C语言中是如何实现字符串的? 2. 在字符串处理方面主要有什么操作? 3. 字符串的操作的主要特点是什么? 4. 举出几个字符串的应用范例?

【参考代码】

//功能:顺序串的基本基本功能 #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<<\请输入要创建的字符串(ctrl+z结束输入):\ while((ch=getch())!=26) { cout<

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

void string::strtraverse() { int i,j; if(length>0) { cout<<\位置: \ for(i=0;i<=length/10;i++) cout<<\ cout<

}

int string::strlength() { return length; }

void menu(void) {

cout<<\顺序串基本功能菜单\ cout<<\

cout<<\建立顺序串(仅限单行的字符串,建议不用汉字。)\ cout<<\显示串\ cout<<\修改串\ cout<<\插入串\ cout<<\删除串\ cout<<\查找串\ cout<<\求串长度\ cout<<\结束程序\ cout<<\}

int main() {

int flag=0,returnvalue,position,beginposition,endposition,length; char choice,choose,newstr[maxsize]; string newstring; menu(); while(1) { cout<<\请输入选择:\ cin>>choice; switch(choice) { case '1': if(flag) { cout<<\数据已存在,是否覆盖?(y/n)\ cin>>choose; if(choose=='N'||choose=='n') { cout<<\数据没有发生更改!\ break; } if(choose=='Y'||choose=='y') {

returnvalue=newstring.strcreate(); if(returnvalue==success) cout<<\创建成功!\ flag=1; } else cout<<\输入错误!\ } else { returnvalue=newstring.strcreate(); if(returnvalue==success) cout<<\创建成功!\ flag=1; } break; case '2':

if(flag==0) cout<<\请先建立串!\ else newstring.strtraverse(); break; case '3':

if(flag==0) cout<<\请先建立串!\else { newstring.strtraverse(); cout<<\请输入要修改的初始位置:\ cin>>beginposition; cout<<\请输入要修改的终止位置:\ cin>>endposition; cout<<\请输入修改后的字符串:\ cin>>newstr;

returnvalue=newstring.strmodify(beginposition,endposition,newstr); if(returnvalue==success) { cout<<\修改成功!\ newstring.strtraverse(); }

五星文库wxphp.com包含总结汇报、资格考试、党团工作、文档下载、外语学习、旅游景点、word文档、办公文档、教程攻略、考试资料、出国留学以及实验三 串基本操作的编程实现等内容。

本文共2页12