免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八講 字符與字符串第八講字符與字符串引言一、教學(xué)目的本講主要介紹了C語言中關(guān)于字符和字符串的操作方法。要求大家掌握字符和字符串的輸入輸出方法,掌握字符串的存儲(chǔ)特點(diǎn)以及常用字符串操作函數(shù)的使用,了解的二維字符串?dāng)?shù)組的使用。二、知識(shí)要點(diǎn)1.單個(gè)字符的輸入輸出(1)函數(shù)getchar()的使用(2)函數(shù)putchar()的使用2.字符數(shù)組與字符串(1)字符數(shù)組(2)字符串3.字符串的輸入和輸出函數(shù)(1)函數(shù)puts()的使用(2)函數(shù)gets()的使用4.字符串操作函數(shù)函數(shù)strlen()、strcpy()、strcat()、strcmp()、strlwr()、strupr()的功能5.二維字符串?dāng)?shù)組(1)二維字符串?dāng)?shù)組的初始化(2)二維字符串?dāng)?shù)組的輸入輸出三、邊用邊學(xué)8.1單個(gè)字符的輸入輸出C語言頭文件“stdio.h”中還定義了兩個(gè)專門用于單個(gè)字符輸入輸出的函數(shù)getchar()和putchar()。一、字符輸入函數(shù)getchar()getchar()函數(shù)作用是從輸入設(shè)備(如鍵盤)讀取一個(gè)字符。函數(shù)getchar()沒有參數(shù),其一般形式為getchar( );其執(zhí)行結(jié)果是從輸入設(shè)備得到一個(gè)字符??梢?,getchar()函數(shù)同帶格式符%c的scanf()函數(shù)都可以接收一個(gè)字符,并且可以將得到的字符賦給一個(gè)字符型變量或者整型變量。但是不是所有場(chǎng)合二者都可以互相替換。下面我們列出了它們的不同之處:(1)getchar()一次只能接收一個(gè)字符。(2)getchar()可以接收回車字符。而scanf()將回車作為數(shù)據(jù)的間隔符或結(jié)束符。(3)getchar()接收的字符可以不賦給任何變量。二、字符輸出函數(shù)putchar()putchar()函數(shù)作用是將一個(gè)字符輸出到輸出設(shè)備(如顯示器)。它的一般形式為putchar(字符型或整型數(shù)據(jù));函數(shù)putchar()的可以輸出字符型變量、整型變量、字符型常量以及控制字符和轉(zhuǎn)義字符。8.2字符數(shù)組與字符串一、字符數(shù)組如果一個(gè)數(shù)組的元素是字符型數(shù)據(jù),則該數(shù)組為字符數(shù)組。所以字符數(shù)組的定義、引用、初始化同樣遵循上一講“數(shù)組”的規(guī)定。字符數(shù)組的賦值符合數(shù)組的有關(guān)要求,除了在定義時(shí)初始化,只能一個(gè)元素一個(gè)元素地賦值。同樣將字符數(shù)組中的全部?jī)?nèi)容輸出,也只能一個(gè)元素一個(gè)元素地輸出。上述方式只能用于處理已知個(gè)數(shù)的字符序列,并且當(dāng)字符序列發(fā)生變化時(shí),字符數(shù)組無法伴隨字符序列長(zhǎng)度的變化而變化??梢?,將一個(gè)字符序列看作是單個(gè)字符的集合的處理方式比較單一和笨拙。C語言中常將字符序列當(dāng)作字符串來處理,由于字符串的結(jié)構(gòu)的特殊性,它不僅具備一般單個(gè)字符的集合的所有處理方式,而且它的輸入輸出更為靈活,并且可以使用C語言提供的強(qiáng)大的字符串處理函數(shù)。所以C語言的字符串的處理方式,極大地提高了C語言處理字符序列的能力。二、字符串在C語言中,字符序列當(dāng)作字符串來處理。字符串的處理是基于字符數(shù)組的。字符串在實(shí)際存儲(chǔ)時(shí)其尾部添加了一個(gè)結(jié)束標(biāo)志0。0代表ASCII碼為0的字符,是一個(gè)空操作符,表示什么也不干。所以采用字符數(shù)組存放字符串,其賦值時(shí)應(yīng)包含結(jié)束標(biāo)志0。字符串除了具備以上字符數(shù)組的處理方式之外,還可以采用C語言提供的輸入輸出字符串的格式符“%s”。需要注意的是:當(dāng)格式符為“%s”時(shí),scanf()函數(shù)的地址列表是字符數(shù)組的名字,并且無需加地址符&。printf()函數(shù)中格式符對(duì)應(yīng)的變量是字符數(shù)組的名字。利用格式符“%s”輸入輸出字符串,字符數(shù)組只要不小于字符串的個(gè)數(shù)即可。所以這是C語言中最常用的字符序列處理方法。8.3字符串的輸入和輸出函數(shù)在C語言提供了字符串的輸入輸出函數(shù)gets()和puts(),它們?cè)陬^文件“stdio.h”中定義的,用于整串字符串的輸入輸出。一、字符串輸出函數(shù)puts()puts()函數(shù)作用是將一個(gè)字符串(以0結(jié)束的字符序列)輸出,其一般形式為puts(字符數(shù)組名);或puts(字符串);函數(shù)puts()的使用注意以下幾個(gè)問題:1.函數(shù)puts()一次只能輸出一個(gè)字符串。2.函數(shù)puts()可以輸出轉(zhuǎn)義字符。3.函數(shù)puts()輸出字符串后自動(dòng)換行。printf()函數(shù)可以同時(shí)輸出多個(gè)字符串,并且能靈活控制是否換行。所以printf()函數(shù)比puts()函數(shù)更為常用。二、字符串輸入函數(shù)gets()gets()函數(shù)作用是將一個(gè)字符串輸入到字符數(shù)組中,其一般形式為gets(字符數(shù)組名);gets()函數(shù)同scanf()函數(shù)一樣,在讀入一個(gè)字符串后,系統(tǒng)自動(dòng)在字符串后加上一個(gè)字符串結(jié)束標(biāo)志0。函數(shù)gets()的使用時(shí)要注意以下幾個(gè)問題:1.函數(shù)gets()只能一次輸入一個(gè)字符串。2.函數(shù)gets()可以讀入包含空格和TAB的全部字符,直到遇到回車為止。使用格式符“%s”的函數(shù)scanf(),以空格、TAB或回車作為一段字符串的間隔符或結(jié)束符,所以含有空格或TAB的字符串要用gets()函數(shù)輸入。8.4字符串操作函數(shù)C語言提供了很多字符串操作函數(shù),其對(duì)應(yīng)的頭文件為string.h。1.strlen(字符串)strlen()是測(cè)試字符串實(shí)際長(zhǎng)度的函數(shù),它的返回值是字符串中字符的個(gè)數(shù)(不包含0的個(gè)數(shù))。2.strcpy(字符數(shù)組1,字符串2)strcpy()用于將字符串2復(fù)制到字符數(shù)組1中。函數(shù)strcpy()使用時(shí)注意以下幾點(diǎn):(1)字符數(shù)組1必須足夠大,以便容納字符串2的內(nèi)容。(2)字符串2可以是字符數(shù)組名或者字符串常量。當(dāng)字符串2為字符數(shù)組名時(shí),只復(fù)制第一個(gè)0前面的內(nèi)容(含0),其后內(nèi)容不復(fù)制。3.strcat(字符數(shù)組1,字符串2)strcat()的作用是將字符串2的內(nèi)容復(fù)制連接在字符數(shù)組1的后面,其返回值為字符數(shù)組1的地址。函數(shù)strcpy()使用時(shí)注意以下幾點(diǎn):(1)字符數(shù)組1不能是字符串常量,并且必須足夠大,以便可以繼續(xù)容納字符串2的內(nèi)容。(2)連接前字符數(shù)組1的0將被字符串2覆蓋,連接后生成的新的字符串的最后保留一個(gè)0。4.strcmp(字符串1,字符串2)strcmp()的作用是比較字符串1和字符串2。兩個(gè)字符串從左至右逐個(gè)字符比較(按照字符的ASCII碼值的大?。?,直到字符不同或者遇見0為止。如果全部字符都相同,則返回值為0。如果不相同,則返回兩個(gè)字符串中第一個(gè)不相同的字符的ASCII碼值的差,即字符串1大于字符串2時(shí)函數(shù)值為正,否則為負(fù)。漢字同樣可以作為字符串處理,可以使用strlen()、strcpy()、strcat()和strcmp()函數(shù),注意1個(gè)漢字相當(dāng)于2個(gè)字符,并且漢字比較大小是按照漢字存儲(chǔ)在計(jì)算機(jī)中的國(guó)標(biāo)碼的大小。5.strlwr(字符串)strlwr()的作用是將字符串中大寫字母轉(zhuǎn)換成小寫字母。6.strupr(字符串)strupr()的作用是將字符串中小寫字母轉(zhuǎn)換成大寫字母。8.5二維字符串?dāng)?shù)組一、二維字符串?dāng)?shù)組的初始化二維字符串?dāng)?shù)組的初始化,可以采用二維字符數(shù)組初始化形式或者字符串初始化形式,如:char name210=J,o,h,n,0,M,a,r,r,y,0;char name210=”John”,”Marry”;char name210=”John”,”Marry”;三種方法效果一樣。二、二維字符串?dāng)?shù)組的賦值和引用由于二維數(shù)組可以看作是一個(gè)特殊的一維數(shù)組,它的數(shù)組元素是一個(gè)一維數(shù)組。所以二維字符串?dāng)?shù)組可以看作是這樣一個(gè)一維數(shù)組,它的元素是一個(gè)字符串。例如:char name210=”John”,”Marry”;三、二維字符串?dāng)?shù)組作為函數(shù)參數(shù)二維字符串?dāng)?shù)組的元素和數(shù)組名都可以作為函數(shù)參數(shù),并且使用方法與二維數(shù)組的使用方法相同。作業(yè)1.編寫一個(gè)函數(shù)string_change(char str ),要求實(shí)現(xiàn)str中的字符的互換。如”abcde”換成”edcba”。2.編寫一個(gè)函數(shù)char_search(char str ,char c),如果字符串str中包含字符c則返回?cái)?shù)值1,否則返回?cái)?shù)值0。3.編寫一個(gè)函數(shù)string_cut(char string ,char c),其功能是刪除字符串中所有的字符變量c,例如char string=“abaca”; char c=a;則執(zhí)行string_cut(string,c)后,string的內(nèi)容變?yōu)椤眀c”。4.編寫一個(gè)函數(shù)string_search(char str1 ,char str2 ),如果字符串str1中包含字符串2則返回?cái)?shù)值1,否則返回?cái)?shù)值0。5.進(jìn)一步完善“學(xué)生成績(jī)管理系統(tǒng)”。主菜單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中華女子學(xué)院《傳統(tǒng)及現(xiàn)代手工藝制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州信息工程職業(yè)學(xué)院《工業(yè)控制網(wǎng)絡(luò)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院《數(shù)字電路設(shè)計(jì)及實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院《品牌形象專項(xiàng)設(shè)計(jì)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 新型材料在電池儲(chǔ)能中的應(yīng)用
- 共建文化 發(fā)展未來模板
- 市場(chǎng)營(yíng)銷領(lǐng)導(dǎo)力實(shí)踐述職
- 業(yè)務(wù)操作-房地產(chǎn)經(jīng)紀(jì)人《業(yè)務(wù)操作》模擬試卷4
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》預(yù)測(cè)試卷4
- 農(nóng)學(xué)成果答辯報(bào)告模板
- 物業(yè)項(xiàng)目服務(wù)進(jìn)度保證措施
- (隱蔽)工程現(xiàn)場(chǎng)收方計(jì)量記錄表
- DB22T 5005-2018 注塑夾芯復(fù)合保溫砌塊自保溫墻體工程技術(shù)標(biāo)準(zhǔn)
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評(píng)分表
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國(guó)育齡女性生殖健康研究報(bào)告
- 各種靜脈置管固定方法
- 消防報(bào)審驗(yàn)收程序及表格
- 教育金規(guī)劃ppt課件
評(píng)論
0/150
提交評(píng)論