數(shù)組和數(shù)組單元的基本概念_第1頁
數(shù)組和數(shù)組單元的基本概念_第2頁
數(shù)組和數(shù)組單元的基本概念_第3頁
數(shù)組和數(shù)組單元的基本概念_第4頁
數(shù)組和數(shù)組單元的基本概念_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、3) 如果數(shù)組長度大于字符串實際長度,也只輸出到遇0結束。如char c10=china;printf(%S,c);(4) 利用一個scanf函數(shù)輸入多個字符串,則以空格分隔。例如: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) 輸入一個字符串函數(shù)gets( ) gets函數(shù)一般調用格式為: gets(str) ; gets函數(shù)的作用是從終端鍵盤輸入字符串(字符串

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

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

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

8、ing uppercase (字符串大寫)的縮寫。函數(shù)的作用是將字符串中小寫字母換成大寫字母。 以上介紹了常用的字符串處理函數(shù),應當再次強調:庫函數(shù)并非c語言本身的組成部分,而是人們?yōu)槭褂梅奖愣帉?、提供大家使用的公共函?shù)。每個系統(tǒng)提供的函數(shù)數(shù)量和函數(shù)名、函數(shù)功能都不盡相同,使用時要小心,必要時查一下庫函數(shù)手冊。當然,有一些基本的函數(shù)(包括函數(shù)名和函數(shù)功能),不同的系統(tǒng)所提供的是相同的,這就為程序的通用性提供了基礎。例: 由鍵盤輸入一字符串,要求從該串中刪去一字符。 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 字符串數(shù)組應用舉例字符串數(shù)組應用舉例 for(i=0 ; str1i !=0 ; i+) if(str1i!=ch) str2i-k=str1i ; else k=k+1 ; str2i-k=0 ; printf(n%sn , str2) ; 該程序運行后,從鍵盤輸入字符串: I am a boy 回車 屏幕顯示:delete? 輸入:a 輸出為:I m boy 第6章 數(shù) 組 返回章目錄例6.8 輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔開。 程序如下: #i

10、nclude 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); 運行情況如下:I am a boy.There are 4 words in the line. 程序中變量i作為循環(huán)變量,num用來統(tǒng)計單詞個數(shù),word作為判別是否單詞的標志,若word=0表示未出現(xiàn)單詞,如出現(xiàn)單詞word就置成1。算法見圖6.17所示。圖圖6.176.17 解題的思路是這樣的:單詞的數(shù)目可以由空格出現(xiàn)的次數(shù)決定(連續(xù)的若干個空格作為出現(xiàn)一次空格;一行開頭的空格不統(tǒng)計在內)。如果測出某一個字符為非空格,而它的前面的字符是空格,則表示“新的單詞開始了” ,此時使num(單詞數(shù))累加1。如果當前字符為非空格而其前面的字符也是非空格,則意味著仍然是原來那個單詞的繼續(xù),num不應再累加1。前面一個字符是否空格可以從word的值看出來,若word=0,則表示前一個字符是空格

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論