




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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 ; / 串的復(fù)制操作 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,返回負(fù) 值;如果相等,返回 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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代發(fā)工資活動方案
- 代筆活動策劃方案
- 以身說法活動方案
- 企業(yè)上云活動方案
- TJSQA-溫室氣體?產(chǎn)品碳足跡量化方法與要求?砌體材料產(chǎn)品編制說明
- 企業(yè)上網(wǎng)繪畫活動方案
- 企業(yè)代發(fā)活動方案
- 企業(yè)公司初步策劃方案
- 企業(yè)冬至活動方案
- 貴州省銅仁市沿河縣2022-2023學(xué)年五年級下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 中脈道和系統(tǒng)文化課件
- 品檢員考試題庫及答案
- 數(shù)字金融促進(jìn)區(qū)域經(jīng)濟(jì)高質(zhì)量發(fā)展的機制與路徑研究
- 2025年高考英語課后續(xù)寫高頻考點話題分類第07講 讀后續(xù)寫之成長類主題(講義)
- 2025-2030中國制鞋機械行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025年信息技術(shù)小學(xué)水平測試試卷及答案
- 2025年中國對苯二甲酸二甲酯市場調(diào)查研究報告
- 生物+2025云南新高考自主命題沖刺金卷及答案
- 國家開放大學(xué)《園林規(guī)劃設(shè)計》形考任務(wù)1-4參考答案
- 腕管綜合征診治循證臨床實踐指南(2024)解讀
- 融資租賃 測試題及答案
評論
0/150
提交評論