好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

..

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

【实验目的】

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

串基本操作的编程实现(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<

if(ch!=13)

str[i]=char(ch); else i=i-1;

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

length=i+1; 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

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

{position=i-str_length+2;count++;continue;} else {

if(position==1) i=i-count; count=0;

position=0; } }

return position; }

void string::strtraverse() {

int i,j; if(length>0) {

cout<<\位置: \

for(i=0;i<=length/10;i++)

cout<<\ cout<

cout<<\位置: \

for(i=0;i<=length/10;i++) {

for(j=0;j<=9;j++) cout<

cout<

cout<<\当前串: \ for(i=0;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);

.. .

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

..实验三串基本操作的编程实现【实验目的】容:串基本操作的编程实现要求:串基本操作的编程实现(2学时,验证型),掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、
推荐度:
点击下载文档文档为doc格式
732lm8mk8s4ddq3430jm4g4gh0kze500yjh
领取福利

微信扫码领取福利

微信扫码分享