C程序語(yǔ)言課件:第10章 字符串_第1頁(yè)
C程序語(yǔ)言課件:第10章 字符串_第2頁(yè)
C程序語(yǔ)言課件:第10章 字符串_第3頁(yè)
C程序語(yǔ)言課件:第10章 字符串_第4頁(yè)
C程序語(yǔ)言課件:第10章 字符串_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第10章 字符串本章學(xué)習(xí)內(nèi)容 字符串常量 字符串處理函數(shù) 向函數(shù)傳遞字符串10.1字符串常量用雙引號(hào)括起的一串字符是字符串常量,C語(yǔ)言自動(dòng)為其添加0結(jié)束符How are youH o w a r e y o u 0一串以0結(jié)尾的字符在C語(yǔ)言中被看作字符串10.2字符串的存儲(chǔ)C語(yǔ)言并沒(méi)有為字符串提供任何專門的表示法,完全使用字符數(shù)組和字符指針來(lái)處理字符數(shù)組每個(gè)元素都是字符類型的數(shù)組char str80;H o w a r e y o u 0H o w a r e y o u 0是字符數(shù)組,但不代表字符串?dāng)?shù)組的最后一個(gè)元素必須是0字符數(shù)組的初始化用字符型數(shù)據(jù)對(duì)數(shù)組進(jìn)行初始化 char str6 =

2、 C,h,i,n,a,0; 用字符串常量直接對(duì)數(shù)組初始化 char str6 = China; char str6 = China;對(duì)于一個(gè)二維數(shù)組,C編譯程序?qū)⑵湟暈橐粋€(gè)一維數(shù)組,這個(gè)一維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。這一概念對(duì)字符型數(shù)組仍適用。 二維字符數(shù)組的初始化aa00bbb0c000char ch34=“aa”,”bbb”,”c” ;第一維的長(zhǎng)度代表要存儲(chǔ)的字符串的個(gè)數(shù),可以省略。第二維的長(zhǎng)度不能省略,且應(yīng)按最長(zhǎng)的字符串長(zhǎng)度設(shè)定按字符逐個(gè)輸入/輸出for (i=0; stri!=0; i+) putchar(stri);putchar(n);char str10=“Hello”;1

3、0.4字符串的訪問(wèn)和輸入/輸出一般不用字符串長(zhǎng)度控制按字符串整體輸入/輸出scanf(%s,str); printf(%s,str);char str10;10.4字符串的訪問(wèn)和輸入/輸出gets(str); puts(str);不能輸入帶空格的字符串空格、回車或制表(Tab)符是輸入數(shù)據(jù)的分隔符,因而不能被讀入,輸入遇到這些字符時(shí),系統(tǒng)認(rèn)為字符串輸入結(jié)束可以輸入帶空格的字符串以回車符作為字符串輸入結(jié)束10.4字符串的訪問(wèn)和輸入/輸出【例10.1】從鍵盤輸入一個(gè)人名,把它顯示在屏幕上 Why?10.4字符串的訪問(wèn)和輸入/輸出【例10.2】使用函數(shù)gets(),從鍵盤輸入一個(gè)帶有空格的人名,然后

4、把它顯示在屏幕上 10.4字符串的訪問(wèn)和輸入/輸出【例10.2】使用函數(shù)gets(),從鍵盤輸入一個(gè)帶有空格的人名,然后把它顯示在屏幕上 不限制輸入字符串的長(zhǎng)度易引起緩沖區(qū)溢出,給黑客攻擊以可乘之機(jī)Enter your name(maximum 12 characters):Yang Li-Wei 12345Hello Yang Li-Wei 12345!10.4字符串的訪問(wèn)和輸入/輸出【例10.2】使用函數(shù)gets(),從鍵盤輸入一個(gè)帶有空格的人名,然后把它顯示在屏幕上 能夠限制輸入字符串的長(zhǎng)度10.5字符串處理函數(shù)#include strcpy(目的字符串,源字符串);string cop

5、ystrlen(字符串);string lengthstrcat(目的字符串,源字符串);string combinationstrcmp(字符串1,字符串2);string comparison計(jì)算字符串長(zhǎng)度#include strlen(字符串);string lengthchar str10 = China;printf(%d, strlen(str);打印結(jié)果是 5,6,還是10? C h i n a 0 0 0 0 0不包括0的實(shí)際字符的個(gè)數(shù)計(jì)算字符串長(zhǎng)度#include strlen(字符串);string lengthlen = strlen(str);for (i=0; ile

6、n; i+) putchar(stri);putchar(n);用長(zhǎng)度控制字符串輸出char str=“Hello Students!”字符串復(fù)制#include strcpy(目的字符串,源字符串);string copy字符串能否用=整體復(fù)制?str2 = str1;strcpy(str2, str1);注意復(fù)制的方向!str2必須足夠大!char str1=“Hello!”,str280;字符串復(fù)制#include strcpy(目的字符串,源字符串);string copy字符串能否用=整體復(fù)制?str2 = str1;strcpy(str2, str1);想想這個(gè)函數(shù)是如何實(shí)現(xiàn)字符串

7、復(fù)制的?char str1=“Hello!”,str280;字符串連接#include strcat(目的字符串,源字符串);string combinationstrcat(str2, str1);str2必須足夠大!H e l l o 0 0 0 0 0 0 0 C h i n a 0H e l l o C h i n a 0 0char str1=“china”,str280=“Hello”;if(strlen(str2)+strlen(str1)+1=80)字符串比較#include strcmp(字符串1,字符串2);string comparison字符串能否用,=比較大?。縤f

8、(str2 = str1)if (strcmp(str2, str1) = 0)字符串比較#include strcmp(字符串1,字符串2);string comparison字符串是如何比較大小的?當(dāng)出現(xiàn)第一對(duì)不相等的字符時(shí),就由這兩個(gè)字符決定所在字符串的大小,返回其ASCII碼比較的結(jié)果值comparecomputercompare computer 表示strcmp(str1, str2) 0為真10.6向函數(shù)傳遞字符串向函數(shù)傳遞字符串時(shí),既可使用字符數(shù)組作函數(shù)參數(shù),也可使用字符指針作函數(shù)參數(shù) 傳地址調(diào)用例10.5 :字符串復(fù)制用字符數(shù)組編程void MyStrcpy(char dst

9、Str, char srcStr)int i = 0; while (srcStri != 0) dstStri = srcStri; i+; dstStri = 0; H e l l o C h i n a 0 srcStridstStriHi=0ei=1li=2li=3oi=4i=5Ci=6hi=7ii=8ni=9ai=100srcStri=0#include #include #define ARR_SIZE 80void MyStrcpy(char dstStr, char srcStr);main()char sARR_SIZE, tARR_SIZE;printf(Please en

10、ter source string: );gets(s);if(strlen(s)+1 = ARR_SIZE) MyStrcpy(t,s); printf(The copy string is: ); puts(t); else puts(“字符數(shù)組空間不夠,無(wú)法進(jìn)行字符串拷貝!”)z例10.6 :計(jì)算實(shí)際字符個(gè)數(shù) unsigned int MyStrlen(char str) int i;unsigned int len = 0; for (i=0; stri!=0; i+) len+; return (len); 方法1:用字符數(shù)組實(shí)現(xiàn)統(tǒng)計(jì)實(shí)際字符個(gè)數(shù)(不含0)#include #define ARR_SIZE 80unsigned int MyStrlen(char str);main()char st

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論