字符串與二維數(shù)組課件_第1頁(yè)
字符串與二維數(shù)組課件_第2頁(yè)
字符串與二維數(shù)組課件_第3頁(yè)
字符串與二維數(shù)組課件_第4頁(yè)
字符串與二維數(shù)組課件_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5.2字符串與二維數(shù)組字符數(shù)組與字符串字符串的處理二維數(shù)組字符串的聲明C語(yǔ)言不支持字符串?dāng)?shù)據(jù)類(lèi)型,但是允許使用字符數(shù)組來(lái)表示字符串。在C語(yǔ)言中,字符串變量就是一個(gè)字符數(shù)組字符串變量聲明的一般形式為:char變量名[數(shù)組大小];例如: charname[30];字符串的初始化C語(yǔ)言允許字符數(shù)組兩種方式的初始化: charname[9]=“LiangYe”; charname[9]={’L’,’i’,’a’,’n’,’g’,’’,’Y’,’e’,’\0’};當(dāng)把字符串賦值給字符數(shù)組時(shí),會(huì)自動(dòng)在字符串末尾加上空字符’\0’(gets函數(shù))數(shù)組大小必須大于或等于字符串長(zhǎng)度+1可以大于: charname[20]=“LiangYe”;不可以小于: charname[5]=“LiangYe”;注:當(dāng)以元素列舉的方式初始化字符數(shù)組時(shí),必須顯式地加上空字符(getchar函數(shù))字符串的輸入輸出scanf函數(shù)在工作過(guò)程中,一旦遇到空格、制表符、回車(chē)符、換行符等,就停止讀入工作。如:LiangYe\n,僅讀取Liang就停止了。在使用scanf函數(shù)讀取字符串時(shí),請(qǐng)注意格式的不同: scanf(”%d”,&no); scanf(”%s”,name);scanf在讀取”Liang-Ye\n”時(shí),數(shù)組name的大小應(yīng)該保證大于或等于9,以便保存‘\0’。字符串的輸入輸出例:使用scanf函數(shù)讀取一系列字符串main(){charword1[40],word2[40],word3[40],word4[40];scanf(“%s%s”,word1,word2);scanf(“%s”,word3);scanf(“%s”,word4);printf(“%s\n”,word1);printf(“%s\n”,word2);printf(“%s\n”,word3);printf(“%s\n”,word4);}getchar函數(shù)的使用getchar函數(shù)用于從鍵盤(pán)讀取一個(gè)字符,不受空格的影響,可以讀取一段文本。格式:getchar();注:getchar函數(shù)沒(méi)有參數(shù)例: main() { charword[100],character; intc=0; do { character=getchar(); word[c]=character; c++; }while(character!='\n');

word[c]='\0'; printf("%s\n",word); }gets函數(shù)的使用gets函數(shù)可以讀取以回車(chē)換行符結(jié)尾的一行文本格式:gets(str);gets函數(shù)不會(huì)受空格的影響,最后的回車(chē)換行符不保存,但是會(huì)自動(dòng)在末尾加上一個(gè)’\0’。例: main() { charword[100];

gets(word); printf("%s\n",word); }屏幕輸出函數(shù)printf函數(shù)用于在屏幕上輸出一個(gè)字符串,用來(lái)顯示以’\0’結(jié)尾的字符數(shù)組 格式:printf(“%s”,name);putchar函數(shù)用于在屏幕上輸出一個(gè)字符 格式:putchar(ch); 等價(jià)于:printf(“%c”,ch);puts函數(shù)用于在屏幕上輸出一個(gè)字符串,并將光標(biāo)移至下一行行首 格式:puts(name); 等價(jià)于:printf(“%s\n”,name);字符的算術(shù)運(yùn)算C語(yǔ)言允許像數(shù)字一樣對(duì)字符進(jìn)行操作。當(dāng)某個(gè)字符常量和字符變量在表達(dá)式中出現(xiàn)時(shí),系統(tǒng)自動(dòng)地將其轉(zhuǎn)換為整數(shù)值。C函數(shù)庫(kù)中有一個(gè)函數(shù)atoi(),可以將數(shù)字字符串轉(zhuǎn)換為相應(yīng)的整數(shù)值。字符串的復(fù)制C語(yǔ)言沒(méi)有直接作用于字符串上的運(yùn)算符,因此 charname[9]; name=“LiangYe”; 是錯(cuò)誤的。不能直接將一個(gè)字符串賦給另一個(gè)字符串charname1[9]=“LiangYe”; charname2[9]=name1也是錯(cuò)誤的那么,如果想對(duì)字符串復(fù)制,怎么辦?字符串的組合在C語(yǔ)言中,字符串不能通過(guò)算術(shù)加結(jié)合到一起, string3=string2+string1; string2=string1+“Hello”; 都是不合法的。在C語(yǔ)言中,字符串不能直接進(jìn)行比較, if(string2==string1) if(string1==“Hello”) 都是不合法的。字符串處理函數(shù)C語(yǔ)言函數(shù)庫(kù)支持大量的字符串處理函數(shù),來(lái)完成字符串操作,包含在頭文件<string.h>中以下是一些最常用的字符串處理函數(shù)引用二維數(shù)組元素時(shí)必須帶有兩個(gè)下標(biāo),形式如下:數(shù)組名[下標(biāo)1][下標(biāo)2]二維數(shù)組在內(nèi)存中占據(jù)一系列連續(xù)的存儲(chǔ)單元,數(shù)組元素按行順序存放,先放行下標(biāo)是0的元素,再放行下標(biāo)是1的元素,...a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]a[2][0]a[2][1]a[2][2]二維數(shù)組初始化:二維數(shù)組定義時(shí)也可以用花括號(hào)對(duì)全部或前面一部分?jǐn)?shù)組元素進(jìn)行初始化。數(shù)組的初始化是逐行進(jìn)行的例: inta[2][3]={1,2,3,4,5,6}; inta[2][3]={{1,2,3},{4,5,6}};如果數(shù)組的所有元素都顯示地進(jìn)行了初始化,那么就不必指定第一個(gè)維數(shù)的大小,但第二維大小不能省略。例: inta[][3]={1,2,3,4,5,6};二維數(shù)組

二維數(shù)組判斷對(duì)錯(cuò): inta[2][3]={1,2}; nta[3][4]={{1,2},{3},{4,5},{6}}; inta[3][4]={{1,2},{3}}; inta[2][3]={1,2,3,4,5,6,7,8}; inta[][3]={{1,2,3},{4,5},{6}};初值個(gè)數(shù)不能多于數(shù)組元素的個(gè)數(shù)給數(shù)組的部分元素賦初值時(shí),數(shù)組的長(zhǎng)度聲明不能省略數(shù)組的應(yīng)用二維數(shù)組程序舉例將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中。例如:A=123B=144562536數(shù)組的應(yīng)用main(){ inta[2][3]={{1,2,3},{4,5,6}}; intb[3][2],i,j; printf(“Arraya:\n"); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf(“Arrayb:\n"); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i][j]); printf("\n"); }}數(shù)組的應(yīng)用數(shù)組的應(yīng)用main(){ inti,max,number; inta[12]={1,2,3,4,9,8,7,6,-10,10,-5,2}; max=a[0]; for(i=0;i<12;i++) if(a[i]>max) { max=a[i]; number=i; }

printf("max=%d,row=%d,colum=%d\n",max,number/4,number%4);}解法二:定義為二維數(shù)組main(){ inti,j,row,colum,max;inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論