




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章
字符數組與字符串
本章要點字符數組的定義與賦值字符數組的初始化與引用字符串的定義及輸入與輸出字符串的處理與字符串處理函數字符串與指針運算本章難點
字符串與指針運算
本章目錄8.1字符數組
8.1.1字符數組的定義與賦值
8.1.2字符數組的初始化
8.1.3字符數組的引用8.2字符串
8.2.1字符串的定義及其輸入與輸出
8.2.2字符串的處理與字符串處理函數
8.2.3字符串與指針運算8.3字符數組與字符串應用舉例8.4常見錯誤及解決方法8.1
字符數組8.1.1字符數組的定義與賦值(1)字符數組的定義
字符數組的定義與一般數組相同。字符數組的定義格式如下:存儲種類char數組名[常量表達式];/*一維字符數組*/存儲種類char數組名[常量表達式1][常量表達式2];/*二維字符數組*/
8.1
字符數組8.1.1字符數組的定義與賦值(2)字符數組的賦值在數組定義后對數組賦值,只能通過對其中的每個元素逐個賦值的方式進行。例:P228若定義之后在賦值語句中只給部分元素賦值,則剩余沒有賦值的數組元素為隨機字符。8.1
字符數組8.1.2字符數組的初始化1.字符初始化用字符為字符數組初始化,具體有三種情況:(1)初始化所有元素(2)初始化部分元素(3)不指定數組大小8.1
字符數組8.1.2字符數組的初始化
2.字符串初始化用雙引號括起來的一個字符串(字符串常量)作為字符數組的值注意:字符串初始化與用字符初始化不同,系統會在字符串常量后自動添加一個字符串結束標記‘\0’。二維數組也可以直接用字符串來初始化。如:chart[][10]={"China","America","Japan","Russia"};8.1
字符數組8.1.3字符數組的引用1.逐個引用字符數組中的單個字符具體引用形式如:數組名[下標]
例:c[2]='a'+2;c[0]=c[2]+3;2.將字符數組作為字符串來處理在一次引用整個字符數組時,只需使用數組名即可
chara[]={"Hello"};printf("%s\n",a);/*用%s格式符輸出時,printf函數中的輸出項a是數組名*/8.2字符串8.2.1字符串的定義及其輸入與輸出1.字符串的定義字符串是用雙引號括起來的一個字符序列,由零個或若干字符的構成。字符串可以包括字母、數字、專用字符和轉義字符等。
C語言中字符串通常以字符串常量的形式出現.
在C語言中沒有專門的字符串變量,字符串如果需要存放在變量中,需要用字符數組來存放,即字符串是一種字符型數組8.2字符串8.2.1字符串的定義及其輸入與輸出2.字符串的輸入與輸出字符串的輸入、輸出可以采用逐個字符的輸入、輸出方式來實現,也可采用整體輸入、輸出方式。常用的輸入與輸出函數:輸入函數:gets()scanf()getchar()輸出函數:puts()printf()putchar()8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出
gets()和puts()用于字符串整體的輸入與輸出,getchar()和putchar()用于單個字符的輸入與輸出。scanf()和printf()通常情況下可以代替gets()和puts(),用于字符串整體的輸入與輸出。在程序中調用這些函數時需包含頭文件stdio.h。8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出(1)gets()函數gets()函數的調用格式為:gets(字符數組名);功能:接受鍵盤的輸入,將輸入的字符串存放在字符數組中,直到遇到回車符時返回。但是回車換行符‘\n’不會作為有效字符存儲到字符數組中,而是轉換為字符串結束標志‘\0’來存儲。gets()函數能接受包含空格字符的字符串8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出(2)scanf()函數
scanf()函數在輸入字符串時使用%s格式控制符,并且與%s對應的地址參數應該是一個字符數組,任何時候都會忽略前導空格,讀取輸入字符并保存到字符數組中,直到遇到空格符或回車符輸入操作便終止了。
scanf()函數會自動在字符串后面加'\0'。8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出gets()函數和scanf()函數輸入字符串的區別gets()scanf()輸入的字符串中可包含空格字符輸入的字符串中不可包含空格字符只能輸入一個字符串可連續輸入多個字符串(使用%s%s﹒﹒)不可限定字符串的長度可限定字符串的長度(使用%ns)遇到回車符結束遇到空格符或回車符結束8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出(3)puts()函數puts()函數的調用格式為:puts(字符數組名);功能:將字符串中的所有字符輸出到終端上,輸出時將字符串結束標志'\0'轉換成換行符'\n'。使用puts()函數輸出字符串時無法進行格式控制8.2字符串8.2.1字符串的定義及其輸入與輸出
2.字符串的輸入與輸出(4)printf()函數
printf()函數在輸出字符串時使用%s格式控制符,并且與%s對應的地址參數必須是字符串第一個字符的地址,printf()函數將依次輸出字符串中的每個字符直到遇到字符'\0'('\0'不會被輸出)8.2字符串8.2.2字符串的處理與字符串處理函數1.字符串的處理
在C語言中,不能通過運算符直接對字符串進行求長、復制、連接、比較、查找等操作。要進行這些操作,我們既可以利用系統提供的標準庫函數來實現,也可利用數組自己編寫代碼來完成。利用數組編寫代碼來逐個字符的處理字符串,可以幫助我們更好地理解庫函數的工作情況。例:P325-2378.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數
C語言函數中提供了相當多的字符串處理函數,熟練掌握這些函數的使用,非常方便于編程。在使用字符串處理函數時,應包含頭文件”string.h”。8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數(1)字符串求長求字符串的長度的庫函數是strlen,其調用格式為:strlen(字符串的地址);功能:返回字符串中包含的字符個數(不包含'\0'),即字符串的長度。注意:字符串的長度是指從給定的字符串的起始地址開始到第一個'\0'為止8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數(2)字符串連接使用strcat函數可以將兩個字符串連接起來構成一個新的字符串。其調用格式為:
strcat(字符數組1,字符串2);功能:將字符串2連接到字符串1的后面(包含字符串結束標志'\0'),并返回字符串1的地址。其中,字符串2沒有變,而字符數組1中的字符將增加了。注意:字符數組1的長度必須足夠大,以便能容納被連接的字符串;字符串2可以是字符數組名,也可以是字符串常量。8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數(3)字符串復制字符串的復制需使用strcpy、strncpy函數。strcpy函數調用格式為:strcpy(字符數組1,字符串2);功能:字符串2復制到字符數組1中去(包括字符串2結束標志‘\0’)。字符數組1必須是一個字符數組變量,且其長度必須足夠大,以便能容納字符串2,字符串2可以是字符數組名,也可以是字符串常量。8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數(3)字符串復制strncpy函數strncpy函數的調用格式為:
strnpy(字符數組1,字符串2,長度n);功能:將字符串2的前n個字符串復制到字符數組1中去,并在末尾加'\0'。因此strncpy函數可以實現字符串的部分復制。當n大于或等于字符串2的長度時,strncpy等價于strcpy。8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數(5)字符串比較字符串比較的函數是strcmp,其調用格式為:
strcmp(字符串1,字符串2);功能:比較字符串1和字符串2的大小。若字符串1等于字符串2,則返回0;若字符串1大于字符串2,則返回正整數;若字符串1小于字符串2,則返回負整數。8.2字符串8.2.2字符串的處理與字符串處理函數
2.字符串處理函數其他常用的字符或字符串處理函數見課本P239表8-3字符串處理函數8.2字符串8.2.3字符串與指針運算
字符串本質上是以‘\0’結尾字符數組。字符串在內存中的起始地址(即第一個字符的地址)通常稱為字符串的指針,可以定義一個字符指針變量指向一個字符串。(1)字符串的表示在C語言中,既可以用字符數組來表示字符串,也可用字符指針來表示字符串如:charstr[]="Goodmorning!";char*p="Goodmorning!";8.2字符串8.2.3字符串與指針運算(2)字符串的引用當利用字符指針變量表示字符串時,可逐個引用字符串中的字符,也可整體引用字符串。
P240:例8-5與例8-68.2字符串8.2.3字符串與指針運算(3)字符指針作函數參數
將一個字符串從一個函數傳遞給另一個函數,可用地址傳遞的方法,即用字符數組名作為參數,也可用指向字符的指針變量做參數。在被調用的函數中可以改變字符串的內容,在主調函數中可以得到改變了得字符串。P240:例8-78.2字符串8.2.3字符串與指針運算(4)字符指針變量與字符數組的比較字符指針變量和字符數組都能實現字符串的存儲和處理,但二者是有區別。不同點:
a.存儲內容不同
b.賦值方式不同
c.地址常量與地址變量的不同8.3字符數組與字符串應用舉例見教材例8-8,例8-8,例8-108.4常見錯誤及解決方法小結(1)字符數組也是一種常規數組,其定義形式與一般數組相同。(2)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民俗IP產業化路徑-洞察及研究
- 關注學生心理健康培訓心得體會
- 數字民族志書寫-洞察及研究
- 古代農業技術溯源-洞察及研究
- 山東畜牧獸醫職業學院《學術論文寫作技巧》2023-2024學年第二學期期末試卷
- 河南機電職業學院《市場競爭軟件模擬訓練》2023-2024學年第二學期期末試卷
- 廣東醫科大學《食品標準化工程》2023-2024學年第二學期期末試卷
- 廣東水利電力職業技術學院《醫學微生物學實驗》2023-2024學年第二學期期末試卷
- 重慶五一職業技術學院《文獻學專題》2023-2024學年第二學期期末試卷
- 吉安職業技術學院《言語語言康復》2023-2024學年第二學期期末試卷
- 勞動者職業衛生培訓課件
- 2025安全宣傳咨詢日活動知識手冊
- 學習強安應急第一響應人理論考試答案
- 耗差分析在火電廠指標管控中的運用
- 一年級看圖寫話范文
- 鋁扣板吊頂施工組織設計方案
- 中華詩詞之美期末考試答案(匯總)
- 一年級成長檔案
- 儲罐電動葫蘆倒裝提升方案
- 校企合作培訓協議
- 《十萬個為什么》課外閱讀測試題
評論
0/150
提交評論