




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑工程監(jiān)理委托合同
- 2025股權轉讓合同
- 初三學生國旗下演講稿《輕裝上陣迎中考 志存高遠勇拼搏》
- 運維服務管理優(yōu)化匯報
- 模擬有限責任公司設立登記流程
- 膿胸的護理常規(guī)
- 2025年環(huán)境監(jiān)測測驗試題
- 公司財務報銷費用培訓
- 2025年中醫(yī)執(zhí)業(yè)醫(yī)師考試中藥學知識點總結模版
- 新質生產(chǎn)力日報
- 籃球賽計分表模板
- 如何預防性侵害(公開課)
- boschqbasics博世價值流課件
- 鐵路勞動合同書
- 新部編版四年級下冊語文閱讀理解專項訓練(15篇)
- 1000字作文方格稿紙A4打印模板直接用
- 建筑公司組織架構與崗位職責
- 三方合作解除協(xié)議書
- 銅陵千衍新材料科技有限公司異佛爾酮產(chǎn)業(yè)延伸技改項目環(huán)評報告
- 大學生期末備考計劃表(四篇)
- 女性中醫(yī)保健智慧樹知到答案章節(jié)測試2023年暨南大學
評論
0/150
提交評論