數(shù)組和數(shù)組單元的基本概念_第1頁(yè)
數(shù)組和數(shù)組單元的基本概念_第2頁(yè)
數(shù)組和數(shù)組單元的基本概念_第3頁(yè)
數(shù)組和數(shù)組單元的基本概念_第4頁(yè)
數(shù)組和數(shù)組單元的基本概念_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

1、數(shù)組和數(shù)組單元的基本概念一維數(shù)組二維數(shù)組定義、初始化、引用定義、初始化、引用6.4 字符數(shù)組 字符數(shù)組是用來(lái)存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一個(gè)字符。 6.4.1 字符數(shù)組的定義、引用、初始化字符數(shù)組的定義、引用、初始化 對(duì)字符數(shù)組賦值或數(shù)組初始化時(shí),數(shù)據(jù)使用字符型數(shù)據(jù)或相應(yīng)的ASCII碼值。 6.4.2 字符串與字符型數(shù)組字符串與字符型數(shù)組 字符串(也稱字符串常量)是用雙引號(hào)括起來(lái)的若干有效字符序列。在C語(yǔ)言中,字符串可以包含字母、數(shù)字、轉(zhuǎn)義字符等。 第6章 數(shù) 組 1. 使用字符串時(shí)的注意事項(xiàng)使用字符串時(shí)的注意事項(xiàng) (1) C語(yǔ)言沒有專門存放字符串的變量。 (2) C語(yǔ)言中,系統(tǒng)自

2、動(dòng)地在每一個(gè)字符串的最后加入一個(gè)字符 0,作為字符串的結(jié)束標(biāo)志。 (3) C語(yǔ)言中,字符型數(shù)據(jù)是指單個(gè)字符(包含轉(zhuǎn)義字符),在使用時(shí)用單引號(hào)括起來(lái)。而字符串是用雙引號(hào)括起來(lái)的字符序列。第6章 數(shù) 組 2. 字符數(shù)組的初始化字符數(shù)組的初始化 (1) 可以在定義數(shù)組的同時(shí)對(duì)數(shù)組中的各個(gè)元素賦初值,例如: char c5=h , e , l , l , o ; (2) 可以在定義數(shù)組的同時(shí)將字符串賦給一個(gè)一維字符型數(shù)組。 例如: char c6=hello ;第6章 數(shù) 組 6.4.3 字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出 可以利用字符數(shù)組對(duì)單個(gè)字符和字符串進(jìn)行輸入輸出操作。 1. 逐個(gè)字符輸入輸出

3、 用格式符%c輸入或輸出一個(gè)字符。 2. 字符串整串輸入和輸出 用%s格式符可輸入、輸出字符串。由于C語(yǔ)言中沒有專門存放字符串的變量,字符串存放在一個(gè)字符型數(shù)組中,數(shù)組名表示第一個(gè)字符的首地址,故在輸入或輸出字符串時(shí)可直接使用數(shù)組名。第6章 數(shù) 組 例如:char c=china;printf(%S,c); 在內(nèi)存中數(shù)組c的狀態(tài)如圖6.11所示。輸出時(shí),遇結(jié)束符0就停止輸出。輸出結(jié)果為:china圖6.11請(qǐng)注意:(1) 輸出字符不包括結(jié)束符0。(2) 用“%S”格式符輸出字符串時(shí),printf函數(shù)中的輸出項(xiàng)是字符數(shù)組名,而不是數(shù)組元素名。寫成下面這樣是不對(duì)的: printf(%S,c0);(

4、3) 如果數(shù)組長(zhǎng)度大于字符串實(shí)際長(zhǎng)度,也只輸出到遇0結(jié)束。如char c10=china;printf(%S,c);(4) 利用一個(gè)scanf函數(shù)輸入多個(gè)字符串,則以空格分隔。例如:char strl5,Str25,Str35;scanf(%S%S%S,Str1,Str2,Str3);輸入數(shù)據(jù):How are you? 輸入后Str1、Str2、Str3數(shù)組狀態(tài)見圖6.12。圖6.126.4.4 字符串處理函數(shù)字符串處理函數(shù) 1. 字符串輸入、輸出函數(shù) 1) 輸入一個(gè)字符串函數(shù)gets( ) gets函數(shù)一般調(diào)用格式為: gets(str) ; gets函數(shù)的作用是從終端鍵盤輸入字符串(字符串

5、可以包括空格),直到遇到回車符為止,回車符讀入后,不作為字符串的內(nèi)容,系統(tǒng)將自動(dòng)用0代替,作為字符串的結(jié)束標(biāo)志。 第6章 數(shù) 組 2) 輸出一個(gè)字符串函數(shù)輸出一個(gè)字符串函數(shù)puts( ) puts( )函數(shù)的一般調(diào)用格式為: puts(str) ; 該函數(shù)的作用是從str指定的地址開始,依次輸出存儲(chǔ)單元中的字符,直到遇到字符串結(jié)束標(biāo)志第1個(gè) 0 字符為止。第6章 數(shù) 組 2. 字符串處理函數(shù) 1) 字符串復(fù)制函數(shù)字符串復(fù)制函數(shù)strcpy( ) strcpy( )函數(shù)一般調(diào)用格式為: strcpy(str1 , str2) 功能:把str2所指向的字符串復(fù)制到str1所指的字符數(shù)組中。 2)

6、字符串連接函數(shù)字符串連接函數(shù)strcat( ) strcat( )函數(shù)一般調(diào)用格式為: strcat(str1 , str2) ; 功能:將str2所指的字符串連接到str1所指的字符串的后面,并自動(dòng)覆蓋str1所指的字符串的尾部字符 0。第6章 數(shù) 組 3) 求字符串長(zhǎng)度函數(shù)求字符串長(zhǎng)度函數(shù)strlen( ) strlen( )函數(shù)一般調(diào)用格式為: strlen(str) ; 功能:計(jì)算str為起始地址的字符串的長(zhǎng)度(不包含字符串結(jié)束標(biāo)志0),并作為函數(shù)值返回。第6章 數(shù) 組 4) 字符串比較函數(shù)字符串比較函數(shù)strcmp( ) strcmp( )函數(shù)一般調(diào)用格式為: strcmp(str1

7、 , str2) ; 功能:比較str1和str2所指向的兩個(gè)字符串,并產(chǎn)生以下結(jié)果: str1與str2相等時(shí),函數(shù)值為0。 str1str2時(shí),函數(shù)值大于0。 str1str2時(shí),函數(shù)值小于0。 字符串之間比較的方法是:從第一個(gè)字符開始,依次對(duì)str1與str2對(duì)應(yīng)位置上的字符按ASCII碼值的大小進(jìn)行比較,直到出現(xiàn)第一個(gè)不相同的字符時(shí),即由這兩個(gè)字符的大小決定所在串的大小。第6章 數(shù) 組 5) strlwr(字符串字符串)Strlwr是String Lowercase (字符串小寫)的縮寫。函數(shù)的作用是將字符串中大寫字母換成小寫字母。6) struPr(字符串字符串)Strupr是Str

8、ing uppercase (字符串大寫)的縮寫。函數(shù)的作用是將字符串中小寫字母換成大寫字母。 以上介紹了常用的字符串處理函數(shù),應(yīng)當(dāng)再次強(qiáng)調(diào):庫(kù)函數(shù)并非c語(yǔ)言本身的組成部分,而是人們?yōu)槭褂梅奖愣帉?、提供大家使用的公共函?shù)。每個(gè)系統(tǒng)提供的函數(shù)數(shù)量和函數(shù)名、函數(shù)功能都不盡相同,使用時(shí)要小心,必要時(shí)查一下庫(kù)函數(shù)手冊(cè)。當(dāng)然,有一些基本的函數(shù)(包括函數(shù)名和函數(shù)功能),不同的系統(tǒng)所提供的是相同的,這就為程序的通用性提供了基礎(chǔ)。例: 由鍵盤輸入一字符串,要求從該串中刪去一字符。 main() char str150 , str250 ; char ch ; int i=0 , k=0 ; gets(str

9、1) ; printf( n delete?) ; scanf(%c , &ch) ;第6章 數(shù) 組 6.4.5 字符串?dāng)?shù)組應(yīng)用舉例字符串?dāng)?shù)組應(yīng)用舉例 for(i=0 ; str1i !=0 ; i+) if(str1i!=ch) str2i-k=str1i ; else k=k+1 ; str2i-k=0 ; printf(n%sn , str2) ; 該程序運(yùn)行后,從鍵盤輸入字符串: I am a boy 回車 屏幕顯示:delete? 輸入:a 輸出為:I m boy 第6章 數(shù) 組 返回章目錄例6.8 輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分隔開。 程序如下: #inclu

10、de main() char string81; int i,num=0,word=0; char c; getS(String); for (i=0;(c=Stringi)!=0;i+) if(c=) word=0; else if(word=0) word=1; num+; printf(There are %d wordS in the line.n,num); 運(yùn)行情況如下:I am a boy.There are 4 words in the line. 程序中變量i作為循環(huán)變量,num用來(lái)統(tǒng)計(jì)單詞個(gè)數(shù),word作為判別是否單詞的標(biāo)志,若word=0表示未出現(xiàn)單詞,如出現(xiàn)單詞word就置成1。算法見圖6.17所示。圖圖6.176.17 解題的思路是這樣的:?jiǎn)卧~的數(shù)目可以由空格出現(xiàn)的次數(shù)決定(連續(xù)的若干個(gè)空格作為出現(xiàn)一次空格;一行開頭的空格不統(tǒng)計(jì)在內(nèi))。如果測(cè)出某一個(gè)字符為非空格,而它的前面的字符是空格,則表示“新的單詞開始了” ,此時(shí)使num(單詞數(shù))累加1。如果當(dāng)前字符為非空格而其前面的字符也是非空格,則意味著仍然是原來(lái)那個(gè)單詞的繼續(xù),num不應(yīng)再累加1。前面一個(gè)字符是否空格可以從word的值看出來(lái),若word=0,則表示前一個(gè)字符是空格

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論