




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)組和數(shù)組單元的基本概念一維數(shù)組二維數(shù)組定義、初始化、引用定義、初始化、引用6.4 字符數(shù)組 字符數(shù)組是用來存放字符的數(shù)組,字符數(shù)組中的一個元素存放一個字符。 6.4.1 字符數(shù)組的定義、引用、初始化字符數(shù)組的定義、引用、初始化 對字符數(shù)組賦值或數(shù)組初始化時,數(shù)據(jù)使用字符型數(shù)據(jù)或相應(yīng)的ASCII碼值。 6.4.2 字符串與字符型數(shù)組字符串與字符型數(shù)組 字符串(也稱字符串常量)是用雙引號括起來的若干有效字符序列。在C語言中,字符串可以包含字母、數(shù)字、轉(zhuǎn)義字符等。 第6章 數(shù) 組 1. 使用字符串時的注意事項使用字符串時的注意事項 (1) C語言沒有專門存放字符串的變量。 (2) C語言中,系統(tǒng)自
2、動地在每一個字符串的最后加入一個字符 0,作為字符串的結(jié)束標志。 (3) C語言中,字符型數(shù)據(jù)是指單個字符(包含轉(zhuǎn)義字符),在使用時用單引號括起來。而字符串是用雙引號括起來的字符序列。第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); 在內(nèi)存中數(shù)組c的狀態(tài)如圖6.11所示。輸出時,遇結(jié)束符0就停止輸出。輸出結(jié)果為:china圖6.11請注意:(1) 輸出字符不包括結(jié)束符0。(2) 用“%S”格式符輸出字符串時,printf函數(shù)中的輸出項是字符數(shù)組名,而不是數(shù)組元素名。寫成下面這樣是不對的: printf(%S,c0);(
4、3) 如果數(shù)組長度大于字符串實際長度,也只輸出到遇0結(jié)束。如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ù)一般調(diào)用格式為: gets(str) ; gets函數(shù)的作用是從終端鍵盤輸入字符串(字符串
5、可以包括空格),直到遇到回車符為止,回車符讀入后,不作為字符串的內(nèi)容,系統(tǒng)將自動用0代替,作為字符串的結(jié)束標志。 第6章 數(shù) 組 2) 輸出一個字符串函數(shù)輸出一個字符串函數(shù)puts( ) puts( )函數(shù)的一般調(diào)用格式為: puts(str) ; 該函數(shù)的作用是從str指定的地址開始,依次輸出存儲單元中的字符,直到遇到字符串結(jié)束標志第1個 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所指的字符串的后面,并自動覆蓋str1所指的字符串的尾部字符 0。第6章 數(shù) 組 3) 求字符串長度函數(shù)求字符串長度函數(shù)strlen( ) strlen( )函數(shù)一般調(diào)用格式為: strlen(str) ; 功能:計算str為起始地址的字符串的長度(不包含字符串結(jié)束標志0),并作為函數(shù)值返回。第6章 數(shù) 組 4) 字符串比較函數(shù)字符串比較函數(shù)strcmp( ) strcmp( )函數(shù)一般調(diào)用格式為: strcmp(str1
7、 , str2) ; 功能:比較str1和str2所指向的兩個字符串,并產(chǎn)生以下結(jié)果: str1與str2相等時,函數(shù)值為0。 str1str2時,函數(shù)值大于0。 str1str2時,函數(shù)值小于0。 字符串之間比較的方法是:從第一個字符開始,依次對str1與str2對應(yīng)位置上的字符按ASCII碼值的大小進行比較,直到出現(xiàn)第一個不相同的字符時,即由這兩個字符的大小決定所在串的大小。第6章 數(shù) 組 5) strlwr(字符串字符串)Strlwr是String Lowercase (字符串小寫)的縮寫。函數(shù)的作用是將字符串中大寫字母換成小寫字母。6) struPr(字符串字符串)Strupr是Str
8、ing uppercase (字符串大寫)的縮寫。函數(shù)的作用是將字符串中小寫字母換成大寫字母。 以上介紹了常用的字符串處理函數(shù),應(yīng)當(dāng)再次強調(diào):庫函數(shù)并非c語言本身的組成部分,而是人們?yōu)槭褂梅奖愣帉?、提供大家使用的公共函?shù)。每個系統(tǒng)提供的函數(shù)數(shù)量和函數(shù)名、函數(shù)功能都不盡相同,使用時要小心,必要時查一下庫函數(shù)手冊。當(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) ; 該程序運行后,從鍵盤輸入字符串: I am a boy 回車 屏幕顯示:delete? 輸入:a 輸出為:I m boy 第6章 數(shù) 組 返回章目錄例6.8 輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔開。 程序如下: #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); 運行情況如下: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)計在內(nèi))。如果測出某一個字符為非空格,而它的前面的字符是空格,則表示“新的單詞開始了” ,此時使num(單詞數(shù))累加1。如果當(dāng)前字符為非空格而其前面的字符也是非空格,則意味著仍然是原來那個單詞的繼續(xù),num不應(yīng)再累加1。前面一個字符是否空格可以從word的值看出來,若word=0,則表示前一個字符是空格
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年計算機二級考試回答技巧試題及答案
- 2024年5月深海潛水心理壓力閾值測定與裝備失效應(yīng)急推演
- 2024年投資咨詢測試題及答案總結(jié)
- 天使的微笑護理讀書筆記
- 2024監(jiān)理工程師考試獨特挑戰(zhàn)試題及答案
- 2024人力資源管理師考試高頻試題及答案
- 黑龍江民族職業(yè)學(xué)院《文學(xué)文本細讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江省伊春市南岔區(qū)伊春二中2024-2025學(xué)年高三下期第二次月考語文試題含解析
- 黑龍江省哈爾濱市依蘭縣2024-2025學(xué)年初三下期末物理試題(一模)質(zhì)量監(jiān)控試卷含解析
- 黑龍江省哈爾濱市第九中學(xué)2025年高三第二學(xué)期二??荚囉⒄Z試題含解析
- 水果合作合同
- 職業(yè)健康知識培訓(xùn)考試題及答案
- 能源托管服務(wù)投標方案(技術(shù)方案)
- 高校食品安全知識講座
- 高速公路涉路施工許可技術(shù)審查指南(一)
- 2024屆安徽省阜陽市第十中學(xué)重點名校中考試題猜想數(shù)學(xué)試卷含解析
- 急診開放性傷口沖洗專家共識(2023版)解讀
- 機器人制造與工藝
- 參保個人停保申請表
- 全域土地綜合整治項目實施方案
- 永安道路貨物運輸承運人責(zé)任保險附加司乘人員責(zé)任保險(2020版)條款
評論
0/150
提交評論