




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)/ 生成一個(gè)其值
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/串復(fù)制操作Status StrCopy(SString T,SString S) / 由串S復(fù)制得串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 / 操作結(jié)果: 在串S的第pos個(gè)字符之前插入串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 / 操作結(jié)果: 從串S中刪除第pos個(gè)字符起長度為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("輸入兩個(gè)串分別賦值給S1,S2(串長均小于10):n"); scanf("%s%s",a,b);if(StrAssign(S1,a)&&StrAssign(S2,b)printf("n由串S1復(fù)制得串T:");StrCopy(T,S1);/printf("%sn",S2+1);錯(cuò)誤的!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個(gè)字符起長度為len的字符:n");printf("輸入pos,len的值:n");scanf("%d%d",&pos,&len);if(SubString(Sub,S3,pos,len)=1)printf("輸出串Sub:");StrPrint(Sub);elseprintf("序號(hào)不合法,取子串失??!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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)貸款財(cái)務(wù)擔(dān)保合同負(fù)債監(jiān)管與風(fēng)險(xiǎn)控制協(xié)議
- 住宅小區(qū)場(chǎng)地租賃合同終止及社區(qū)服務(wù)協(xié)議
- 廠房租賃合同違約責(zé)任范本
- 建筑材料性能測(cè)試加工及認(rèn)證合同
- 餐飲行業(yè)服務(wù)員招聘及培訓(xùn)考核合同
- 文物保護(hù)區(qū)施工專項(xiàng)方案
- 卡尺使用培訓(xùn)
- 中班健康活動(dòng)《零食要少吃》主題教案
- 糖尿病病人的護(hù)理和教育
- 員工應(yīng)急能力培訓(xùn)
- 浙江省杭州市2024-2025學(xué)年高二下學(xué)期6月期末教學(xué)質(zhì)量檢測(cè)英語試題(含答案)
- 2025年河南省中考地理試題(含答案)
- 2025安全生產(chǎn)月一把手講安全公開課三十二(91P)
- 人教鄂教版六年級(jí)下冊(cè)科學(xué)期末專題訓(xùn)練:實(shí)驗(yàn)題、綜合題(含答案)
- 2025課件:紅色基因作風(fēng)建設(shè)七一黨課
- 2025年河北省萬唯中考定心卷生物(一)
- 在線網(wǎng)課學(xué)習(xí)課堂《人工智能(北理 )》單元測(cè)試考核答案
- 國家開放大學(xué)《中文學(xué)科論文寫作》形考任務(wù)1-4參考答案
- 物體打擊應(yīng)急預(yù)案演練總結(jié)
- 《海水工廠化養(yǎng)殖尾水處理技術(shù)規(guī)范》標(biāo)準(zhǔn)及編制說明
- 起重吊裝安全教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論