串的基本操作_第1頁(yè)
串的基本操作_第2頁(yè)
串的基本操作_第3頁(yè)
串的基本操作_第4頁(yè)
串的基本操作_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告井岡山大學(xué)電子與信息工程學(xué)院

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告(2012——2013年度第一學(xué)期)課程名稱(chēng): 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目一:4.2串基本操作演示系統(tǒng)院系:計(jì)算機(jī)科學(xué)系班級(jí):10軟件本2班姓名:xxx學(xué)號(hào):100913017指導(dǎo)教師:孫凌宇老師成績(jī):2012年12月10日成績(jī)?cè)u(píng)定、指導(dǎo)教師評(píng)語(yǔ)、成績(jī)備注指導(dǎo)教師:日期:年月日

設(shè)計(jì)題目<一>: 4.2串基本操作演示系統(tǒng)一、設(shè)計(jì)要求1.問(wèn)題描述如果計(jì)算機(jī)語(yǔ)言沒(méi)有把串作為一個(gè)預(yù)先定義好的基本類(lèi)型對(duì)待,又需要用該語(yǔ)言寫(xiě)一個(gè)涉及串操作的軟件系統(tǒng)時(shí),用戶(hù)必須自己實(shí)現(xiàn)串類(lèi)型。試著實(shí)現(xiàn)串類(lèi)型,并寫(xiě)一個(gè)串的基本操作演示系統(tǒng)。2.需求分析實(shí)現(xiàn)若干串的常用基本操作,如串賦值、求串長(zhǎng)、串替換、串比較、求子串及串的模式匹配等。為了實(shí)現(xiàn)以上功能,可以從3個(gè)方面著手設(shè)計(jì)。1.主界面設(shè)計(jì)為了實(shí)現(xiàn)串基本操作演示系統(tǒng)各功能的管理,本系統(tǒng)設(shè)計(jì)一個(gè)含有多個(gè)菜單項(xiàng)的主控單,方便用戶(hù)使用。本系統(tǒng)主控菜單運(yùn)行界面如圖1所示。□|x艸C:\Docu>entsandSettings\Ad*inistrator\桌面\fuzhihui\4.2串的基本操作演呂呂呂ALsIRcQ111.+■H+■H士宜士宜+宜+宜□|x艸C:\Docu>entsandSettings\Ad*inistrator\桌面\fuzhihui\4.2串的基本操作演呂呂呂ALsIRcQ111.+■H+■H士宜士宜+宜+宜-呂呂呂呂呂呂位度聖養(yǎng)值長(zhǎng)番替比岀賦親退晴看菜單輸入您要進(jìn)行的操作并回車(chē)龍全部用大寫(xiě)〉:圖1串演示系統(tǒng)主菜單2.存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)使用串的堆分配存儲(chǔ)表示,結(jié)構(gòu)描述如下:typedefstruct{char*ch; //串存放的數(shù)組intcurLen; //串的長(zhǎng)度}HString;3.系統(tǒng)功能設(shè)計(jì)本系統(tǒng)設(shè)置了主界面菜單,并在主界面上完成7個(gè)功能的結(jié)果顯示。7個(gè)功能的設(shè)計(jì)描述如下。賦值(A-Assign)。由函數(shù)intstrAssign()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇A功能時(shí),輸入待賦值的新串串值,系統(tǒng)完成串賦值并輸出新串值。求長(zhǎng)度(L-Length)。由函數(shù)intStrLength()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇L功能時(shí),系統(tǒng)輸出串的長(zhǎng)度。求子串(S-SubString)。由函數(shù)intsubstring()實(shí)現(xiàn),參數(shù)pos和len分別代表子串sub在原串S上的起始位置和子串長(zhǎng)度。當(dāng)用戶(hù)選擇S功能時(shí),系統(tǒng)輸出子串的串值。子串定位(I-Index)。子串定位又稱(chēng)串的模式匹配,由函數(shù)intIndex()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇I功能時(shí),系統(tǒng)根據(jù)用戶(hù)輸入的原串ob1和子串ob2的值輸出子串在原串上的位置。替換(R-Replace)。由函數(shù)voidReplace()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇R功能時(shí),系統(tǒng)根據(jù)用戶(hù)輸入的原串ob1、子串ob2和插入串ob3的值,輸出用插入串替換了原串中所有指定子串后的串值。判相等(C-Compare)。由函數(shù)intCompare()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇C功能時(shí),系統(tǒng)根據(jù)用戶(hù)輸入的s1與s2的串值進(jìn)行比較。若s1>s2則顯示“s1>s2”;若s1=s2則顯示“s1=s2”;若s1<s2則顯示“s1<s2”。退出(Q-Quit)。當(dāng)用戶(hù)選擇Q功能時(shí),即退出串基本操作演示系統(tǒng),有main()函數(shù)中的if語(yǔ)句實(shí)現(xiàn)。三、模塊設(shè)計(jì)1.模塊設(shè)計(jì)本程序包含兩個(gè)模塊:主程序模塊、串操作模塊。其調(diào)用關(guān)系如圖2所示。主程序模塊 >串操作模塊圖2模塊調(diào)用關(guān)系示意圖2.系統(tǒng)子程序及功能設(shè)計(jì)intinitString(HString*T) //串類(lèi)的初始化函數(shù)intstrAssign(HString*T,char*chars) //串賦值函數(shù),調(diào)用malloc函數(shù)分配內(nèi)存空間intStrLength(HStringS) //求串長(zhǎng)函數(shù)intsubstring(HString&Sub,HStringS,intpos,intlen)//求串S的子串,pos代表子串sub的起始字符序號(hào)(位置),len代表子串sub的長(zhǎng)度intIndex(HString&obl,HString&ob2,intpos)〃從第pos個(gè)字符起的子串定位(串的模式匹配)函數(shù),調(diào)用(3).voidReplace(HString&obl,HString&ob2,HString&ob3)〃將原串ob1的所有子串ob2都替換為插入串ob3,調(diào)用(3)和(5)intCompare(HStringsl,HStrings2) //串比較函數(shù),調(diào)用(3)voidmain() //主函數(shù),設(shè)定界面,調(diào)用操作模塊函數(shù)4.函數(shù)主要調(diào)用關(guān)系圖串基本操作演示系統(tǒng)8個(gè)子程序之間的主要調(diào)用關(guān)系如圖3所示。圖中字母是各函數(shù)四、詳細(xì)設(shè)計(jì)1.?dāng)?shù)據(jù)類(lèi)型定義(1)字符串的定義typedefstruct

char*ch;intcurLen;}HString;(2)全局變量聲明#defineOK1#defineOVERFLOW0//串存放的數(shù)組//串的長(zhǎng)度////串存放的數(shù)組//串的長(zhǎng)度//操作成功//溢出2.系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)(1)主程序模塊設(shè)計(jì)主函數(shù)。設(shè)定用戶(hù)操作界面,調(diào)用操作模塊函數(shù)。voidmain(){輸出操作菜單;Switch(1){輸出操作序號(hào)c;switch(c){調(diào)用相應(yīng)函數(shù)執(zhí)行相應(yīng)操作;輸出操作結(jié)果;}}}(2)求子串intsubstring(HString&Sub,HStringS,intpos,intlen){/串sub返回串S的第pos個(gè)字符起長(zhǎng)度為len的子串inti;if(pos<0||pos>S.curLen||len<0||len>S.curLen-pos){ //若位置或長(zhǎng)度不合法,退出

printf("輸入不合法\n");printf("輸入不合法\n");exit(OVERFLOW);}else{if(Sub.ch)free(Sub.ch);if(!len){Sub.ch=NULL;Sub.curLen=0;}else//退出//釋放子串sub原有空間〃若長(zhǎng)度len為0//就愛(ài)那個(gè)子串置為空串〃若長(zhǎng)度len不為0{Sub.ch=(char*)malloc(len*sizeof(char));for(i=0;i<len;i++){ //從串S的第pos個(gè)字符開(kāi)始依次復(fù)制其后長(zhǎng)度為len的字符串sub中Sub.ch[i]=S.ch[pos-1+i];Sub.curLen=len; //修改串sub的串長(zhǎng)}}returnOK;}}(3)子串定位(串的模式匹配)intIndex(HString&ob1,HString&ob2,intpos){ 〃判斷從第pos個(gè)字符起,ob2是否為obi的子串〃若是返回ob2在obi中的起始位置,否則返回-1if(pos<0||pos>obi.curLen){〃若輸入的數(shù)值pos不在obi的串長(zhǎng)范圍內(nèi)printf("輸入有誤\n");exit(ERROR);

for(inti=pos-1;i<=StrLength(ob1)-StrLength(ob2);i++){ //從ob1的第pos個(gè)字符起查找子串ob2intj=0; 〃從ob2的第一個(gè)字符起開(kāi)始查找while(j<StrLength(ob2)) //j控制查找位置,逐個(gè)字符查找,直到超出子串串長(zhǎng)if(ob1.ch[i+j]==ob2.ch[j])//若找到匹配字符j++; //則依次向后查找}return}return-1;//ob2不是ob1的子串,返回-1}(4)串替換}(4)串替換voidReplace(HString&ob1,HString&ob2,HString&ob3){ 〃將原串obi的所有子串ob2都替換為插入串ob3printf("原串:“);for(inti=0;i<obi.curLen;i++)printf("%c",obi.ch[i]);printf("\n子串:");for(intj=0;j<ob2.curLen;j++)printf("%c",ob2.ch[j]);printf("\n");printf("插入串:");for(intk=0;k<ob3.curLen;k++)printf("%c",ob3.ch[k]);printf("\n");intlen=StrLength(ob2);while(Index(obi,ob2,0)!=-i)//ob2的長(zhǎng)度//當(dāng)ob2是obi的子串,替換所有的ob2elsebreak; //一旦失配,則跳出查找,此時(shí)j還未能達(dá)到子串串長(zhǎng)}if(j==StrLength(ob2))//若j達(dá)到子串串長(zhǎng),即ob2的所有字符都能和obi匹配returni;〃返回ob2在obi的起始位置i

intlen2=StrLength(ob3)+StrLength(ob1)-StrLength(ob2);inti=Index(ob1,ob2,0);intlen2=StrLength(ob3)+StrLength(ob1)-StrLength(ob2);char*p=newchar[StrLength(ob1)-i-len+1];char*q=newchar[len2];for(intj=i+len;j<StrLength(ob1);j++)p[j]=ob1.ch[j];for(intk=0;k<i;k++)q[k]=ob1.ch[k];for(intm=i;m<i+StrLength(ob3);m++)q[m]=ob3.ch[m-i];intb=i+len;for(intn=i+StrLength(ob3);n<len2;n++){ //將不用替換的后部分存入數(shù)組qq[n]=p[b];b++;}ob1.curLen=len2;for(intl=0;l<len2;l++)ob1.ch[l]=q[l];}printf("新串:");for(inth=0;h<ob1.curLen;h++)printf("%c",ob1.ch[h]);}(5)串比較intCompare(HStrings1,HStrings2)//新串的長(zhǎng)度//調(diào)用子串定位函數(shù)//臨時(shí)數(shù)組//存儲(chǔ)新串的數(shù)組〃將不用替換的后部分存入數(shù)組p〃將不用替換的前部分存入數(shù)組q//替換子串//數(shù)組//新串的長(zhǎng)度//調(diào)用子串定位函數(shù)//臨時(shí)數(shù)組//存儲(chǔ)新串的數(shù)組〃將不用替換的后部分存入數(shù)組p〃將不用替換的前部分存入數(shù)組q//替換子串//數(shù)組q存儲(chǔ)著新串〃將新串賦值給obi做循環(huán)替換inti;for(i=0;i<si.curLen&&i<s2.curLen;++i)if(s1.ch[i]!=s2.ch[i])

return(s1.ch[i]-s2.ch[i]);return(s1.curLen-s2.curLen);}五、測(cè)試分析系統(tǒng)運(yùn)行主界面如圖1所示。各子系統(tǒng)測(cè)試運(yùn)行結(jié)果如下。1.賦值(A-Assign)在主菜單下,輸入Ahello!并回車(chē),運(yùn)行結(jié)果如圖4所示。grC:\Docu>entsandSettings\Ad*inistrator\桌面\fuzhihui\4.2串的基本搽作return(s1.ch[i]-s2.ch[i]);return(s1.curLen-s2.curLen);}五、測(cè)試分析系統(tǒng)運(yùn)行主界面如圖1所示。各子系統(tǒng)測(cè)試運(yùn)行結(jié)果如下。1.賦值(A-Assign)在主菜單下,輸入Ahello!并回車(chē),運(yùn)行結(jié)果如圖4所示。grC:\Docu>entsandSettings\Ad*inistrator\桌面\fuzhihui\4.2串的基本搽作---I串窗呂呂呂位度聖養(yǎng)值長(zhǎng)舌替比岀為為為為為為為式式式式式式式1i14-M+■H+■M+■H+■M+■H-呂呂呂呂呂呂-ALsIRcQ數(shù)2<2數(shù)1慣翥蕃里輸入您要進(jìn)行的操作并回車(chē)煌部用大寫(xiě)5hello?于役串為:hello!需著菜單輸入您要進(jìn)行的操作并回車(chē)徒部用大寫(xiě)〉.■|口兇圖4字符串賦值2.求長(zhǎng)度(L-Lengh)在主菜單下,輸入Lstudent并回車(chē),運(yùn)行結(jié)果如圖5所示。c**C:\Docu>entsandSettings\Ad?inistrator\桌面\fuzhihui\4.2串的基本操件---式式式式式式式111*+宜+包士宜士宜+宜+宜-呂呂呂呂呂呂student夢(mèng)單嚴(yán)要進(jìn)行的操作并回鋰部用大寫(xiě)口

魯菜單輸入您要進(jìn)行的操作并回車(chē)£全部用大寫(xiě)〉.student圖5求字符串長(zhǎng)度求子串(S-SubString)在主菜單下,輸入Sstudent25并回車(chē),運(yùn)行結(jié)果如圖6所示g*C:\DocuMentsandSettings\AdAinistrator\桌面\fuzhihui\4.2串的基本操件---二一一值長(zhǎng)番替比岀一一賦親rHw退二ffffff靂菜請(qǐng)子請(qǐng)為為為為為為為式式式式式式式111.+宜士宜士宜士宜士宜士宜-呂呂呂呂呂呂?-?■44-M-二一一值長(zhǎng)番替比岀一一賦親rHw退二ffffff靂菜請(qǐng)子請(qǐng)為為為為為為為式式式式式式式111.+宜士宜士宜士宜士宜士宜-呂呂呂呂呂呂?-?■44-M-數(shù)2?2數(shù)1I串窗44-M-44-M-?-M-?-M-?-M-student圖6求子串子串定位(ITndex)在主菜單下,分別輸入Imicrosoftvisualc++soft1并回車(chē)和Imicrosoftvisualc++soft8,運(yùn)行結(jié)果如圖7所示。c:\^C:\DocuAentsandSettIngs\Ad>inistrator\桌面\fuzhihui\4.2串的基本操件---|~|~Jk.31值

數(shù)串222

4-Hf-Mfnrl

呂呂呂-M-SJk.31值

數(shù)串222

4-Hf-Mfnrl

呂呂呂-M-S二O二PXC二iXmX二I二:X>一二芍?二乍-X」\二-4丿二Rn二X咅X._£二J.3X<二-RTX習(xí)X叵X卜干二+hXE—二申111演呂呂呂呂呂呂ALsIRC< 羽為為為為為為為十操墓式式式式式式式二的行■■毎活進(jìn)$2進(jìn)*要串要MI8一一您位您己一您值長(zhǎng)番替比出二入的入「?賦0^|+^<退一一輸」 =單原單二二二二i菜二二二r一請(qǐng)子請(qǐng)從請(qǐng)4<氐4<回侍的是的行不行:串-I圖7子串定位替換(R-Replace)在主菜單下,輸入Rchickenct并回車(chē),運(yùn)行結(jié)果如圖8所示

w*C:\DocuMentsandSettings\Ad>inistrator\桌面\fuzhihui\4-2串的基本操作值長(zhǎng)番替比岀<1+^*退式式式式式式式ill.+■>+■H+■H+■M+■H+■H-呂呂呂呂呂呂-ALsIRcQ數(shù)w*C:\DocuMentsandSettings\Ad>inistrator\桌面\fuzhihui\4-2串的基本操作值長(zhǎng)番替比岀<1+^*退式式式式式式式ill.+■>+■H+■H+■M+■H+■H-呂呂呂呂呂呂-ALsIRcQ數(shù)2值2數(shù)11串窗w-*e**香X入請(qǐng)?jiān)用@請(qǐng)ti箱h牡I:t:串:菜chicken口|其圖8字符串替換6.判相等(C-Compare)在主菜單下,分別輸入Conin并回車(chē)和Conon并回車(chē),運(yùn)行結(jié)果如圖9所示。c:\^C:\DocuAentsandSettIngs\Ad>inistrator\桌面\fuzhihui\4.2串的基本操件-度聖叢

值長(zhǎng)舌替比岀

賦^退宜凱1匚匚匚匚匚匚彩數(shù);1演呂呂呂呂呂呂^malsircq< 本為為為為為為為基式式式式式式式31值

數(shù)串on

oninon話(huà)耆耒單輸入您要進(jìn)行的操作并回車(chē)龍全部用大寫(xiě)〉嗆供斷曲結(jié)果:串1》串on

oninon青著杲單輸入您要進(jìn)行的操作并回車(chē)£全部用大寫(xiě)〉:C去嚼商結(jié)果:串"串2畚署菜單輸入您要進(jìn)行的操作并回車(chē)<全部用大寫(xiě)〉.圖9判兩串相等7.退出(Q-Quit)在主菜單下,輸入Q并回車(chē),退出串基本操作演示系統(tǒng)。六、用戶(hù)手冊(cè)本程序執(zhí)行文件為“串的基本操作演示.exe”進(jìn)入本系統(tǒng)之后,隨即顯示系統(tǒng)主菜單界面。用戶(hù)可在該界面下按提示信息輸入命令七、調(diào)試報(bào)告(1)我不喜歡敲代碼,寫(xiě)一個(gè)簡(jiǎn)單的程序時(shí)竟然老是出錯(cuò),難一點(diǎn)的,復(fù)雜一點(diǎn)的程序竟然無(wú)從下手,程序的架構(gòu)根本不懂,以至于程序存在許多bug,不過(guò)只要按著提示操作,

還是可以完成相應(yīng)的功能。(2)如果有興趣還可以對(duì)次程序進(jìn)行深入研究,進(jìn)行修改,添加等一些串的其他功能八、程序清單#include<stdlib.h>#include<iostream>#include<conio.h>#defineOK1#defineOVERFLOW0#defineERROR0usingnamespacestd; //使用名稱(chēng)空間std//****串的堆分配存儲(chǔ)表示typedefstruct//串存放的數(shù)組//串存放的數(shù)組//串的長(zhǎng)度char*ch;intcurLen;}HString;//****1.初始化字符串TintinitString(HString*T){(*T).ch=NULL;(*T).curLen=0;returnOK;}//****2.串賦值函數(shù)intstrAssign(HString*T,char*chars){//生成一個(gè)值等于串常量chars的串T并用指針?lè)祷?*chars為指針(數(shù)組名)inti,j;if((*T).ch)free((*T).ch); //釋放T原有空間

i=strlen(chars);//數(shù)組chars的長(zhǎng)度if(!i){(*T).ch=NULL;//若chars為空串,生成空串的堆分配存儲(chǔ)表示(*T).curLen=0;}else{//chars不為空串if(!((*T).ch=(char*)malloc(i*sizeof(char))))exit(OVERFLOW); //分配串的堆空間,若失敗則退出for(j=0;j<i;j++)(*T).ch[j]=chars[j];(*T).curLen=i;}returnOK;}//****3.求串長(zhǎng)函數(shù)intStrLength(HStringS){returnS.curLen; //直接返回串長(zhǎng)}//****4.求子串函數(shù)intsubstring(HString&Sub,HStringS,intpos,intlen){//串Sub返回串S的第pos個(gè)字符起長(zhǎng)度為len的子串inti;if(pos<0||pos>S.curLen||len<0||len>S.curLen-pos){//若位置或長(zhǎng)度不合法,退出//退出//釋放子串sub原有空間//退出//釋放子串sub原有空間exit(OVERFLOW);}else{if(Sub.ch)free(Sub.ch);if(!len) //若長(zhǎng)度len為0{ //將子串置為空串Sub.ch=NULL;Sub.curLen=0;}else//若長(zhǎng)度len不為0{Sub.ch=(char*)malloc(len*sizeof(char));for(i=0;i<len;i++){//從串S的第pos個(gè)字符開(kāi)始依次復(fù)制其后長(zhǎng)度為len的字符串到串Sub中Sub.ch[i]=S.ch[pos-1+i];Sub.curLen=len; //修改串Sub的串長(zhǎng)}}returnOK;}}//****5.子串定位函數(shù)(串的模式匹配)intIndex(HString&ob1,HString&ob2,intpos){ //判斷從第pos個(gè)字符起,ob2是否為ob1的子串//若是返回ob2在ob1中的起始位置,否則返回-1if(pos<0||pos>ob1.curLen){〃若輸入的數(shù)值pos個(gè)字符起,ob2是否為obi的子串printf("輸入有誤\n");exit(ERROR);}for(inti=pos-1;iv=StrLength(ob1)-StrLength(ob2);i++){ 〃從obi的第pos個(gè)字符起查找子串ob2intj=0; 〃從ob2的第一個(gè)字符起開(kāi)始查找while(j<StrLength(ob2)) //j控制查找位置,逐個(gè)字符查找,直到超出子串串長(zhǎng)

if(ob1.ch[i+j]==ob2.ch[j])//若找到匹配字符j++; //則依次向后查找}return}return-1;//ob2不是ob1的子串,返回-1elsebreak; //一旦失配,則跳出查找,此時(shí)j還未能達(dá)到子串串長(zhǎng)}if(j==StrLength(ob2))〃若j達(dá)到子串串長(zhǎng),即ob2的所有字符都能和obi匹配returni;//返回ob2在ob1的起始位置i}//****6.串替換函數(shù)voidReplace(HString&ob1,HString&ob2,HString&ob3){ //將原串ob1的所有子串ob2都替換為插入串ob3printf(“原串:“);for(inti=0;i<ob1.curLen;i++)printf("%c",ob1.ch[i]);printf("\n子串:“);for(intj=0;j<ob2.curLen;j++)printf("%c",ob2.ch[j]);printf("\n");printf("插入串:");for(intk=0;k<ob3.curLen;k++)printf("%c",ob3.ch[k]);printf("\n");intlen=StrLength(ob2); //ob2的長(zhǎng)度while(Index(ob1,ob2,0)!=-1) //當(dāng)ob2是ob1的子串,替換所有的ob2{intlen2=StrLength(ob3)+StrLength(ob1)-StrLength(ob2);//新串的長(zhǎng)度inti=Index(ob1,ob2,0); //調(diào)用子串定位函數(shù)char*p=newchar[StrLength(ob1)-i-len+1]; //臨時(shí)數(shù)組char*q=newchar[len2]; //存儲(chǔ)新串的數(shù)組for(intj=i+len;j<StrLength(ob1);j++)

p[j]=ob1.ch[j];for(intk=0;k<i;k++)p[j]=ob1.ch[j];for(intk=0;k<i;k++)q[k]=ob1.ch[k];for(intm=i;m<i+StrLength(ob3);m++)q[m]=ob3.ch[m-i];intb=i+len;〃將不用替換的后部分存入數(shù)組p//將不用替換的前部分存入數(shù)組q//替換子串for(intn=i+StrLength(ob3);nvlen2;n++){ 〃將不用替換的后部分存入數(shù)組qq[n]=p[b];b++; //數(shù)組q存儲(chǔ)著新串}ob1.curLen=len2;for(intl=0;l<len2;l++)ob1.ch[l]=q[l]; //將新串賦值給ob1做循環(huán)替換}printf("新串:");for(inth=0;h<ob1.curLen;h++)printf("%c",ob1.ch[h]);}//****7.串比較函數(shù)intCompare(HStrings1,HStrings2){ //若s1<s2則返回值<0;若s1=s2則返回值=0;若s1>s2則返回值>0inti;for(i=0;i<s1.curLen&&i<s2.curLen;++i)if(s1.ch[i]!=s2.ch[i])return(s1.ch[i]-s2.ch[i]);return(s1.curLen-s2.curLen);}//8.主函數(shù)voidmain(){printf(f串基本操作演示系統(tǒng)—***************、『);printf(printf("**f.賦值格式為:A串值**\n");printf("**一.求長(zhǎng)度格式為:L串值**\n");printf("**f.求子串格式為:S串值數(shù)1數(shù)2**\n");printf("**f.子串定位格式為:I串值1串值2數(shù)1**\n");printf("**f.串替換格式為:R串值1串值2串值3**\n");printf("**f.串比較格式為:C串值1串值2**\n");printf("**f.退出格式為:Q**\n");while(1){charc;printf(“請(qǐng)看菜單輸入您要進(jìn)行的操作并回車(chē)(全部用大寫(xiě)):");cin>>c; //輸入大寫(xiě)字母if(c=='Q')break;//退出串基本操作演示系統(tǒng)switch(c) //用switch語(yǔ)句對(duì)輸入的大寫(xiě)字母進(jìn)行多向選擇{case'A':{charcnew[50];HStringstr;initString(&str); //初始化串strscanf("%s",cnew);strAssign(&str,cnew);//調(diào)用串生成函數(shù)printf("字符串為:");for(inti=0;i<str.curLen;i++)printf("%c",str.ch[i]);printf("\n");break;}case'L':

cha

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論