




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、#include #include #include typedef struct char *str; int length; HString;/ 堆串 / 初始化 void InitString(HString S.length =0; / 堆串賦值 void StrAssign(HString char *p; p=chars; if(S.str) free(S.str); for(i=0;pi!=0;i+) len=i+1; if(!i) S.length =0; S.str =0; else S.str=(char *)malloc(len*sizeof(char); if(!S.s
2、tr ) exit(-1); for(i=0;ilen;i+) S.stri=pi; S.length =len; / 判斷堆串是否為空 int StrEmpty(HString S) if(S.length =0) return 1; else return 0; / 求堆串長度 int StrLength(HString S) return S.length ; / 串的復制操作 int StrCopy(HString T.str =(char *)malloc(S.length*sizeof(char); if(!T.str) return 0; for(i=0;iS.length;i+
3、) T.stri=S.stri; T.length=S.length; return 1; / 串的比較操作 int StrCompare(HString S,HString T) /*比較串S與串T的大小,如果 S的值大于T,返回正值;如果S的值小于T,返回負 值;如果相等,返回 0*/ int i; for(i=0;iS.lengthi+) if(S.stri!=T.stri) return (S.stri-T.stri); return (S.length-T.length ); / 串的插入操作 int StrInsert(HString if(posS.length) printf(
4、 插入位置錯誤 n); return 0; S.str=(char *)realloc(S.str,(S.length+T.length)*sizeof(char); if(!S.str) printf( 內(nèi)存分配失敗 n); return 0; for(i=S.length-1;ipos-1;i-) S.stri+T.length=S.stri; for(i=0;iT.length;i+) S.strpos+i-1=T.stri; S.length=S.length+T.length; return 1; / 串的刪除操作 int StrDelete(HString char *p; if(
5、posS.length) printf( 刪除位置錯誤,參數(shù) len 不合法 n); return 0; p=(char *)malloc(S.length-len); if(!p) printf( 內(nèi)存分配失敗 n); return 0; for(i=0;ipos-1;i+) pi=S.stri; for(i=pos-1;iS.length-len;i+) pi=S.stri+len; S.length=S.length-len; free(S.str); S.str=p; return 1; / 串的連接操作 int StrConcat(HString T.str=(char *)real
6、loc(T.str,(T.length+S.length)*sizeof(char) ; if(!T.str) printf( 內(nèi)存分配失敗 n); return 0; else for(i=T.length;iT.length +S.length ;i+) T.stri=S.stri-T.length; T.length =T.length +S.length ; return 1; / 截取子串操作 int SubString(HString if(Sub.str ) free(Sub.str ); if(pos0|lenS.length ) printf( 參數(shù) len 和 pos 不合
7、法 n); return 0; else Sub.str =(char *)malloc(len*sizeof(char); if(!Sub.str) printf( 內(nèi)存分配失敗 n); return 0; for(i=0;ilen;i+) Sub.stri=S.strpos+1-1; Sub.length =len; return 1; / 串的定位操作 int StrIndex(HString S,int pos,HString T) /*在主串S中的第pos個位置開始查找子串T,如果找到,返回子串在主串中 的位置;否則,返回 -1*/ int i,j; if(StrEmpty(T) p
8、rintf( 子串為空 n); return 0; i=pos-1; j=0; while(iS.length else return -1; / 串的替換操作 int StrReplace(HString int flag; if(StrEmpty(T) printf( 子串為空 n); return 0; do i=StrIndex(S,i,T); if(i) StrDelete(S,i,StrLength(T); flag=StrInsert(S,i,V); if(!flag) printf( 插入失敗 n); return 0; i+=StrLength(V); while(i); r
9、eturn 1; / 串的清空操作 void StrClear(HString S.str=0; S.length=0; / 輸出串 void Strprint(HString S) int i; for(i=0;i0) printf( 串 S 大于串 Tn); else if(StrCompare(S,T)0) printf( 串 S 小于串 Tn); else printf(” 串 S 與串 T 相等 n); break; case 9:printf(在S中第pos個位置插入 Tn); printf( 請輸入 pos:); scanf(%d, printf( 請輸入 T:); scanf(
10、%s,s); InitString(T); StrAssign(T,s); if(StrInsert(S,pos,T) printf( 插入成功 n); break; case 10:printf( 在 S 中刪除 pos 開始的 len 個字符 n); printf( 請輸入 pos:); scanf(%d, printf( 請輸入 len:); scanf(%d, if(StrDelete(S,pos,len) printf( 刪除成功 n); break; case 11:printf( 將串 T 連接在 S 后 n); printf( 請輸入 T:); scanf(%s,s); Ini
11、tString(T); StrAssign(T,s); if(StrConcat(S,T) printf( 連接成功 n); break; case 12:printf( 將從 S 中第 pos 個位置截取長度為 len Subn); printf( 請輸入 pos:); scanf(%d, printf( 請輸入 len:); scanf(%d, InitString(Sub); if(SubString(Sub,S,pos,len) printf( 截取成功 n); Strprint(Sub); break; case 13:printf(”將串S中所有子串 T用串V替換n); printf( 請輸入 T:); scanf(%s,s); InitString(T); StrAssign(T,s); printf( 請輸入 V:); scanf(%s,s); InitString(V); StrAssign(V,s); if(StrReplace(S,T,V) printf( 替換成功 n); break; case 14:printf( 在主串 S 中的第 pos 個位置開始查找子串 返回子串在主串中的位置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年數(shù)字藝術與設計課程考試卷及答案
- 2025年護理學專業(yè)畢業(yè)生實習考試試題及答案
- 2025年大數(shù)據(jù)分析師職業(yè)資格考試試題及答案
- 2025年房地產(chǎn)業(yè)務管理綜合考核試卷及答案
- 屋頂裝修協(xié)議書范本
- 早教工作總結(jié)匯報
- 秦俑創(chuàng)新美術課件
- 蠶桑養(yǎng)殖培訓講座
- 腫瘤病例診療經(jīng)過圖
- 胃癌患者的防治與護理
- 丹尼森組織文化模型
- 中藥煎藥室應急預案
- 華東師大版七年級數(shù)學上冊教學課件
- 中國航天(航天科普知識)PPT
- GB/T 27806-2011環(huán)氧瀝青防腐涂料
- GB/T 17949.1-2000接地系統(tǒng)的土壤電阻率、接地阻抗和地面電位測量導則第1部分:常規(guī)測量
- 夢幻西游古龍服務端安裝教程
- 《出生醫(yī)學證明》單親母親情況聲明
- 4配電柜安全風險點告知牌
- 旋挖機操作手知識試卷含參考答案
- Q∕GDW 11445-2015 國家電網(wǎng)公司管理信息系統(tǒng)安全基線要求
評論
0/150
提交評論