版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -2#define MAXSTRLEN 255typedef int ElemType;typedef int Status;typedef unsigned char SStringMAXSTRLEN+1;/串赋值操作Status StrAssign(SString T,char chars)/ 生成一个其值
2、等于chars的串Tint i; if(strlen(chars)>MAXSTRLEN)return ERROR; T0=strlen(chars);for(i=0;i<=T0;i+)Ti+1=charsi; return OK;/StrAssign/输出串void StrPrint(SString S)int i; for(i=1;i<=S0;i+)printf("%c",Si);printf("n");/PrnStr/串复制操作Status StrCopy(SString T,SString S) / 由串S复制得串T int i;
3、 for(i=1;i<=S0;i+) Ti=Si;T0=S0; return OK;/StrCopy/判空操作Status StrEmpty(SString S)if(S0=0) return OK; else return ERROR; /StrEmpty/串比较操作int StrCompare(SString S,SString T) int i; for(i=1;i<=S0&&i<=T0;+i) if(Si!=Ti) return Si-Ti; return S0-T0; /StrCompare/求长度操作int StrLength(SString S)
4、return S0;/StrLength/串连接操作Status Concat(SString T,SString S1,SString S2)int i;Status uncut;if(S10+S20<=MAXSTRLEN) for(i=1;i<=S10;i+)Ti=S1i;for(i=1;i<=S20;i+) TS10+i=S2i;T0=S10+S20;uncut=TRUE;else if(S10<MAXSTRLEN)for(i=1;i<=S10;i+)Ti=S1i;for(i=1;i<=MAXSTRLEN-S10;i+)TS10+i=S2i;T0=MA
5、XSTRLEN; uncut=FALSE; elsefor(i=0;i<=MAXSTRLEN;i+)Ti=S1i;uncut=FALSE;return uncut;/Concat/取子串操作Status SubString(SString Sub,SString S,int pos,int len)int i;if(pos<1|pos>S0|len<0|len>S0-pos+1)return ERROR;for(i=1;i<=len;i+)Subi=Spos+i-1;Sub0=len;return OK;/SubString/求子串位置操作int Index
6、(SString S,SString T,int pos) int i,j; i=pos; j=1; while(i<=S0&&j<=T0) if(Si=Tj) +i; +j; else/ 指针后退重新开始匹配 i=i-j+2; j=1; if(j>T0) return i-T0;/匹配成功 return 0; /匹配失败/Index/串插入操作Status StrInsert(SString S,int pos,SString T)/ 初始条件: 串S和T存在,1posStrLength(S)+1 / 操作结果: 在串S的第pos个字符之前插入串T。完全插入
7、返回TRUE,部分插入返回FALSEint i; if(pos<1|pos>S0+1)return ERROR; if(S0+T0<=MAXSTRLEN) / 完全插入for(i=S0;i>=pos;i-)Si+T0=Si; for(i=pos;i<pos+T0;i+) Si=Ti-pos+1; S0=S0+T0; return TRUE;elsefor(i=MAXSTRLEN;i>=pos;i+)Si=Si-T0;for(i=pos;i<pos+T0;i+)Si=Ti-pos+1;S0=MAXSTRLEN;return FALSE;/StrInser
8、t/串删除操作Status StrDelete(SString S,int pos,int len)/ 初始条件: 串S存在,1posStrLength(S)-len+1 / 操作结果: 从串S中删除第pos个字符起长度为len的子串int i;if(pos<1|pos>S0-len+1|len<0)return ERROR;for(i=pos+len;i<=S0;i+)Si-len=Si;S0-=len;return OK;/StrDeletevoid main()int pos,len; SString S1,S2,S3,T,Sub;char a10,b10;pri
9、ntf("输入两个串分别赋值给S1,S2(串长均小于10):n"); scanf("%s%s",a,b);if(StrAssign(S1,a)&&StrAssign(S2,b)printf("n由串S1复制得串T:");StrCopy(T,S1);/printf("%sn",S2+1);错误的!StrPrint(T);if(StrEmpty(T)=1) printf("串T为空!n"); else printf("串T非空!n");printf("n
10、比较串S1,S2:n");if(StrCompare(S1,S2)>0)printf("S1>S2n");else if(StrCompare(S1,S2)<0)printf("S1<S2n");elseprintf("S1=S2n");printf("n连接串S1,S2得串S3:");if(Concat(S3,S1,S2)=1)StrPrint(S3);elseprintf("串连接失败!");printf("串S3的长度为%d:n",St
11、rLength(S3);printf("n用Sub返回串S3中第pos个字符起长度为len的字符:n");printf("输入pos,len的值:n");scanf("%d%d",&pos,&len);if(SubString(Sub,S3,pos,len)=1)printf("输出串Sub:");StrPrint(Sub);elseprintf("序号不合法,取子串失败!n");printf("n求串Sub在串S3中的位置:n");if(Index(S3,S
12、ub,pos)printf("pos值为%dn",pos);elseprintf("pos值不合法!n");printf("n在串S1的第pos位置插入串S2n");printf("输入pos的值:n");scanf("%d",&pos);if(StrInsert(S1,pos,S2)=1)printf("输出串S1:");StrPrint(S1);elseprintf("插入失败!n");printf("n从串S1中删除第pos位置起长
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年及未来5年中国重庆市天然气行业发展监测及投资战略规划研究报告
- 2025年河北邢台临西县招聘编外辅助人员72名笔试考试备考题库及答案解析
- 2025内蒙古呼伦贝尔市卫生健康委员会所属事业单位引进人才46人考试笔试备考题库及答案解析
- 2025年杭州市上城区清波街道办事处编外招聘4人考试笔试备考试题及答案解析
- 2025广东东莞市谢岗医院招聘纳入岗位管理编制外人员20人考试笔试参考题库附答案解析
- 2025江苏连云港市赣榆区劳动就业管理处公益性岗位招聘5人笔试考试备考试题及答案解析
- 2025重庆日报报业集团所属企业招聘3人笔试考试备考题库及答案解析
- 安徽省潜山市2026届九上物理期中教学质量检测试题含解析
- 2026届广西南宁市第四十七中学九年级物理第一学期期中经典试题含解析
- 浙江省嘉兴市上海外国语大秀洲外国语学校2026届物理八上期末达标测试试题含解析
- 2025江苏南京市河西新城区国有资产经营控股(集团)有限公司下属企业选聘2人笔试历年参考题库附带答案详解
- 2025至2030保暖内衣市场前景分析及发展趋势分析与未来投资战略咨询研究报告
- 2025年西南油气田分公司秋季高校毕业生招聘330人笔试参考题库附带答案详解
- 2025-2030中国水下连接器技术发展现状及市场前景预测
- 2024年下半年信息安全工程师考试及答案(中级)
- 2025中数联物流科技(上海)有限公司招聘考试参考试题及答案解析
- 2025年未来就业报告
- 2025年遴选干部面试题及答案
- 国家电投安全培训课件
- 税务税种认定管理办法
- plc技术协议合同模板
评论
0/150
提交评论