字符串的相关操作(数据结构课程设计C语言版)_第1页
字符串的相关操作(数据结构课程设计C语言版)_第2页
字符串的相关操作(数据结构课程设计C语言版)_第3页
字符串的相关操作(数据结构课程设计C语言版)_第4页
字符串的相关操作(数据结构课程设计C语言版)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课程设计题目: 字符串的相关操作 学生姓名 专 业 班 级 指导教师 2012年 6月 24日1、 题目及要求 课程设计目的: 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 题目:字符串的相关操作 1)建立两个字符串string1和string22)编程实现字符串的连接、比较、查询string2在string1的位置、求子串、求串长二、模块图 菜单:choose1 2 3 4 5 6 7 0创建字符串显示求串长比较串串连接串定位求子串退出 1比较s1和s2求s1的字串7创建s1和s2 4 5 显示s1和s2连接后的串求s1和s2连接后的串长326定位s2在新生成的串里的位置 0退出三、程序清单#include#include#include#define maxlen 40typedef struct char chmaxlen+1; int len;sstring;void strini(sstring *s) s-len=0;char *strcreate(sstring *s,int len) if(lenmaxlen) printf(the len is illegal!n); else printf(please input the data of the sstirng:n); s-len=len; scanf(%s,s-ch); return s-ch;void strdisplay(sstring *s) if(s-lenchs-len=0; printf(%s,s-ch); printf(n);int strcompare(sstring s, sstring t)int i;for (i=0;is.len&it.len;i+)if (s.chi!=t.chi)return(s.chi - t.chi);return(s.len - t.len);int strlength(sstring s)return(s.len);int strlink(sstring *s,sstring t1,sstring t2)int i,j, flag;for(j=0;jchj=t1.chj;s-len=t1.len;if (t1.len + t2.len=maxlen)for (i=t1.len; ichi=t2.chi-s-len;s-len+=t2.len; s-chs-len=0;flag=1;elseif (t1.lenmaxlen)for (i=t1.len;ichi=t2.chi-s-len;s-len=maxlen; s-chs-len=0;flag=0;elseflag=0;return(flag);int strindex(sstring s,int pos, sstring t)int i, j, start;if (t.len=0)return(0);start=pos;i=start;j=0;while (is.len & j=t.len)return(start);elsereturn(-1);int substring(sstring *sub, sstring s, int pos, int len)int i;if (poss.len | lens.len-pos)sub-len=0;return(0);elsefor (i=0; ichi=s.chi+pos;sub-len=len; sub-chsub-len=0;return(1);void menu() int flag=1,m=0,n,i,len,pos; sstring s4; while(flag) printf(/*-*/n); printf(1,createn); printf(2,displayn); printf(3,lengthn); printf(4,comparen); printf(5,linkn); printf(6,indexn); printf(7,substringn); printf(0,exitn); printf(/*-*/n); printf(please choose:n); scanf(%d,&n); switch(n) case 1: printf(create s%dn,m+1); printf(please input the length of the s%d:n,m+1); scanf(%d,&len) ; strini(&sm); strcpy(sm.ch,strcreate(&sm,len); m+; break; case 2: printf(which string to display:n); scanf(%d,&i); printf(display s%dn,i); strdisplay(&si-1); break; case 3: printf(which string to show length:n); scanf(%d,&i); printf(the string%d s length is:%3dn,i,strlength(si-1); break; case 4: printf(compare s1 to s2n); if(strcompare(s0,s1)0) printf(s1s2n); else if(strcompare(s0,s1)=0) printf(s1=s2n); else printf(s1s2n); break; case 5: printf(link s1 to s2n); strlink(&s2,s0,s1); break; case 6: printf(please input pos:n); scanf(%d,&pos); printf(the position is in:%3dn,strindex(s2,pos,s1); break; case 7: printf(please input pos:n); scanf(%d,&pos); printf(please input len:n); scanf(%d,&len); strini(&s3); substring(&s3,s0,pos,len); strdisplay(&s3); break; case 0: exit(0); default:printf(the choice is illegal! try again!n); main() menu();4、 运行结果 该菜单用的是下标标注法,即0-5表示1-6这6个位置,截图前有操作的解释(1)初始菜单:(2)创建:创建字符串s1和s2(3)显示:这里显示s1和s2连接后的串,所以这步运行应在连接操作之后,也可以单独显示s1和s2(4)串长:同上,连接操作之后运行,求的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论