



免費預覽已結束,剩余1頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八講 字符與字符串第八講字符與字符串引言一、教學目的本講主要介紹了C語言中關于字符和字符串的操作方法。要求大家掌握字符和字符串的輸入輸出方法,掌握字符串的存儲特點以及常用字符串操作函數的使用,了解的二維字符串數組的使用。二、知識要點1.單個字符的輸入輸出(1)函數getchar()的使用(2)函數putchar()的使用2.字符數組與字符串(1)字符數組(2)字符串3.字符串的輸入和輸出函數(1)函數puts()的使用(2)函數gets()的使用4.字符串操作函數函數strlen()、strcpy()、strcat()、strcmp()、strlwr()、strupr()的功能5.二維字符串數組(1)二維字符串數組的初始化(2)二維字符串數組的輸入輸出三、邊用邊學8.1單個字符的輸入輸出C語言頭文件“stdio.h”中還定義了兩個專門用于單個字符輸入輸出的函數getchar()和putchar()。一、字符輸入函數getchar()getchar()函數作用是從輸入設備(如鍵盤)讀取一個字符。函數getchar()沒有參數,其一般形式為getchar( );其執行結果是從輸入設備得到一個字符。可見,getchar()函數同帶格式符%c的scanf()函數都可以接收一個字符,并且可以將得到的字符賦給一個字符型變量或者整型變量。但是不是所有場合二者都可以互相替換。下面我們列出了它們的不同之處:(1)getchar()一次只能接收一個字符。(2)getchar()可以接收回車字符。而scanf()將回車作為數據的間隔符或結束符。(3)getchar()接收的字符可以不賦給任何變量。二、字符輸出函數putchar()putchar()函數作用是將一個字符輸出到輸出設備(如顯示器)。它的一般形式為putchar(字符型或整型數據);函數putchar()的可以輸出字符型變量、整型變量、字符型常量以及控制字符和轉義字符。8.2字符數組與字符串一、字符數組如果一個數組的元素是字符型數據,則該數組為字符數組。所以字符數組的定義、引用、初始化同樣遵循上一講“數組”的規定。字符數組的賦值符合數組的有關要求,除了在定義時初始化,只能一個元素一個元素地賦值。同樣將字符數組中的全部內容輸出,也只能一個元素一個元素地輸出。上述方式只能用于處理已知個數的字符序列,并且當字符序列發生變化時,字符數組無法伴隨字符序列長度的變化而變化。可見,將一個字符序列看作是單個字符的集合的處理方式比較單一和笨拙。C語言中常將字符序列當作字符串來處理,由于字符串的結構的特殊性,它不僅具備一般單個字符的集合的所有處理方式,而且它的輸入輸出更為靈活,并且可以使用C語言提供的強大的字符串處理函數。所以C語言的字符串的處理方式,極大地提高了C語言處理字符序列的能力。二、字符串在C語言中,字符序列當作字符串來處理。字符串的處理是基于字符數組的。字符串在實際存儲時其尾部添加了一個結束標志0。0代表ASCII碼為0的字符,是一個空操作符,表示什么也不干。所以采用字符數組存放字符串,其賦值時應包含結束標志0。字符串除了具備以上字符數組的處理方式之外,還可以采用C語言提供的輸入輸出字符串的格式符“%s”。需要注意的是:當格式符為“%s”時,scanf()函數的地址列表是字符數組的名字,并且無需加地址符&。printf()函數中格式符對應的變量是字符數組的名字。利用格式符“%s”輸入輸出字符串,字符數組只要不小于字符串的個數即可。所以這是C語言中最常用的字符序列處理方法。8.3字符串的輸入和輸出函數在C語言提供了字符串的輸入輸出函數gets()和puts(),它們在頭文件“stdio.h”中定義的,用于整串字符串的輸入輸出。一、字符串輸出函數puts()puts()函數作用是將一個字符串(以0結束的字符序列)輸出,其一般形式為puts(字符數組名);或puts(字符串);函數puts()的使用注意以下幾個問題:1.函數puts()一次只能輸出一個字符串。2.函數puts()可以輸出轉義字符。3.函數puts()輸出字符串后自動換行。printf()函數可以同時輸出多個字符串,并且能靈活控制是否換行。所以printf()函數比puts()函數更為常用。二、字符串輸入函數gets()gets()函數作用是將一個字符串輸入到字符數組中,其一般形式為gets(字符數組名);gets()函數同scanf()函數一樣,在讀入一個字符串后,系統自動在字符串后加上一個字符串結束標志0。函數gets()的使用時要注意以下幾個問題:1.函數gets()只能一次輸入一個字符串。2.函數gets()可以讀入包含空格和TAB的全部字符,直到遇到回車為止。使用格式符“%s”的函數scanf(),以空格、TAB或回車作為一段字符串的間隔符或結束符,所以含有空格或TAB的字符串要用gets()函數輸入。8.4字符串操作函數C語言提供了很多字符串操作函數,其對應的頭文件為string.h。1.strlen(字符串)strlen()是測試字符串實際長度的函數,它的返回值是字符串中字符的個數(不包含0的個數)。2.strcpy(字符數組1,字符串2)strcpy()用于將字符串2復制到字符數組1中。函數strcpy()使用時注意以下幾點:(1)字符數組1必須足夠大,以便容納字符串2的內容。(2)字符串2可以是字符數組名或者字符串常量。當字符串2為字符數組名時,只復制第一個0前面的內容(含0),其后內容不復制。3.strcat(字符數組1,字符串2)strcat()的作用是將字符串2的內容復制連接在字符數組1的后面,其返回值為字符數組1的地址。函數strcpy()使用時注意以下幾點:(1)字符數組1不能是字符串常量,并且必須足夠大,以便可以繼續容納字符串2的內容。(2)連接前字符數組1的0將被字符串2覆蓋,連接后生成的新的字符串的最后保留一個0。4.strcmp(字符串1,字符串2)strcmp()的作用是比較字符串1和字符串2。兩個字符串從左至右逐個字符比較(按照字符的ASCII碼值的大小),直到字符不同或者遇見0為止。如果全部字符都相同,則返回值為0。如果不相同,則返回兩個字符串中第一個不相同的字符的ASCII碼值的差,即字符串1大于字符串2時函數值為正,否則為負。漢字同樣可以作為字符串處理,可以使用strlen()、strcpy()、strcat()和strcmp()函數,注意1個漢字相當于2個字符,并且漢字比較大小是按照漢字存儲在計算機中的國標碼的大小。5.strlwr(字符串)strlwr()的作用是將字符串中大寫字母轉換成小寫字母。6.strupr(字符串)strupr()的作用是將字符串中小寫字母轉換成大寫字母。8.5二維字符串數組一、二維字符串數組的初始化二維字符串數組的初始化,可以采用二維字符數組初始化形式或者字符串初始化形式,如:char name210=J,o,h,n,0,M,a,r,r,y,0;char name210=”John”,”Marry”;char name210=”John”,”Marry”;三種方法效果一樣。二、二維字符串數組的賦值和引用由于二維數組可以看作是一個特殊的一維數組,它的數組元素是一個一維數組。所以二維字符串數組可以看作是這樣一個一維數組,它的元素是一個字符串。例如:char name210=”John”,”Marry”;三、二維字符串數組作為函數參數二維字符串數組的元素和數組名都可以作為函數參數,并且使用方法與二維數組的使用方法相同。作業1.編寫一個函數string_change(char str ),要求實現str中的字符的互換。如”abcde”換成”edcba”。2.編寫一個函數char_search(char str ,char c),如果字符串str中包含字符c則返回數值1,否則返回數值0。3.編寫一個函數string_cut(char string ,char c),其功能是刪除字符串中所有的字符變量c,例如char string=“abaca”; char c=a;則執行string_cut(string,c)后,string的內容變為”bc”。4.編寫一個函數string_search(char str1 ,char str2 ),如果字符串str1中包含字符串2則返回數值1,否則返回數值0。5.進一步完善“學生成績管理系統”。主菜單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 休閑餐飲店鋪租賃及裝修設計合同
- 2025裝修設計合同模板
- 2025資產評估師《經濟法》考點承包合同
- 2025合同范本廣告合作合同模板
- 2025餐飲公司勞動合同范本
- 理想賽道測試題及答案
- 月餅味道考試題目及答案
- 集郵學試題庫及答案
- 醫院停網試題及答案
- 羅甸人才面試題及答案
- 老舊小區道路及公共設施改造項目施工組織設計方案
- 石材營銷渠道的數字化轉型
- 安徽護理文書規范
- 駕駛員雇傭協議書
- 時代樂章第三課自然之美 課件 2024-2025學年人教版(2024)初中美術上冊
- 三輪車租賃合同范本簡單(2024版)
- DL∕T 1100.1-2018 電力系統的時間同步系統 第1部分:技術規范
- 廣西貴百河聯考2023-2024學年高一下學期5月月考化學試題(解析版)
- CJ/T 158-2002 城市污水處理廠管道和設備色標
- 安徽省池州市貴池區2023-2024學年七年級下學期末歷史試卷
- 七年級上冊語文必背古詩詞
評論
0/150
提交評論