版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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; / 求堆串長(zhǎng)度 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、 插入位置錯(cuò)誤 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( 刪除位置錯(cuò)誤,參數(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個(gè)位置開(kāi)始查找子串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個(gè)位置插入 Tn); printf( 請(qǐng)輸入 pos:); scanf(%d, printf( 請(qǐng)輸入 T:); scanf(
10、%s,s); InitString(T); StrAssign(T,s); if(StrInsert(S,pos,T) printf( 插入成功 n); break; case 10:printf( 在 S 中刪除 pos 開(kāi)始的 len 個(gè)字符 n); printf( 請(qǐng)輸入 pos:); scanf(%d, printf( 請(qǐng)輸入 len:); scanf(%d, if(StrDelete(S,pos,len) printf( 刪除成功 n); break; case 11:printf( 將串 T 連接在 S 后 n); printf( 請(qǐng)輸入 T:); scanf(%s,s); Ini
11、tString(T); StrAssign(T,s); if(StrConcat(S,T) printf( 連接成功 n); break; case 12:printf( 將從 S 中第 pos 個(gè)位置截取長(zhǎng)度為 len Subn); printf( 請(qǐng)輸入 pos:); scanf(%d, printf( 請(qǐng)輸入 len:); scanf(%d, InitString(Sub); if(SubString(Sub,S,pos,len) printf( 截取成功 n); Strprint(Sub); break; case 13:printf(”將串S中所有子串 T用串V替換n); printf( 請(qǐng)輸入 T:); scanf(%s,s); InitString(T); StrAssign(T,s); printf( 請(qǐng)輸入 V:); scanf(%s,s); InitString(V); StrAssign(V,s); if(StrReplace(S,T,V) printf( 替換成功 n); break; case 14:printf( 在主串 S 中的第 pos 個(gè)位置開(kāi)始查找子串 返回子串在主串中的位置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國(guó)車(chē)用電子產(chǎn)品市場(chǎng)調(diào)查研究報(bào)告
- 制作春餅課程設(shè)計(jì)
- 悉尼大學(xué)課程設(shè)計(jì)
- 招投標(biāo)課程設(shè)計(jì)概況
- 煉鋼課程設(shè)計(jì)前言
- 2024版拆除工程勞務(wù)分包合同及拆除廢棄物處理協(xié)議9篇
- 2024版股東個(gè)人對(duì)公司借款用途監(jiān)管合同范本3篇
- 2024版智能電網(wǎng)建設(shè)與運(yùn)營(yíng)管理合同綠色能源3篇
- 2024版知識(shí)產(chǎn)權(quán)質(zhì)押反擔(dān)保合同指南3篇
- 2024醫(yī)院信息崗位保密及醫(yī)療數(shù)據(jù)安全保護(hù)合同3篇
- 高考英語(yǔ)單項(xiàng)選擇題題庫(kù)題
- 檢驗(yàn)檢測(cè)機(jī)構(gòu)資質(zhì)認(rèn)定現(xiàn)場(chǎng)評(píng)審日程表及簽到表
- 完整版高低壓開(kāi)關(guān)柜投標(biāo)文件技術(shù)標(biāo)
- 蘭州市行政區(qū)劃代碼表
- 鐵路貨場(chǎng)平面圖和縱斷面CAD(共3頁(yè))
- 管鮑之交-歷史劇劇本(共4頁(yè))
- [交流][jtag]跟我學(xué)jtag協(xié)議破解——第一彈初識(shí)jtagtap狀態(tài)機(jī)
- 尼康FM2說(shuō)明書(shū)25頁(yè)
- You-are-My-Sunshine中英文歌詞
- 甲醇制氫裝置冷凝器(E0103)設(shè)計(jì)
- 學(xué)校德育活動(dòng)安排表
評(píng)論
0/150
提交評(píng)論