北大青鳥(niǎo) C語(yǔ)言實(shí)現(xiàn) 10_第1頁(yè)
北大青鳥(niǎo) C語(yǔ)言實(shí)現(xiàn) 10_第2頁(yè)
北大青鳥(niǎo) C語(yǔ)言實(shí)現(xiàn) 10_第3頁(yè)
北大青鳥(niǎo) C語(yǔ)言實(shí)現(xiàn) 10_第4頁(yè)
北大青鳥(niǎo) C語(yǔ)言實(shí)現(xiàn) 10_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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、字符串第十章回顧上一節(jié)課主要講解了以下內(nèi)容:函數(shù)的結(jié)構(gòu)函數(shù)聲明和函數(shù)原型按值傳遞 / 按地址傳遞函數(shù)的作用域規(guī)則多文件程序中的函數(shù)函數(shù)指針2目標(biāo)解釋字符串變量和常量解釋字符串指針執(zhí)行字符串的輸入/輸出操作解釋各種字符串函數(shù)解釋如何將數(shù)組作為參數(shù)傳遞給函數(shù)講解如何將字符串用作函數(shù)參數(shù)3字符串變量字符串是以空字符(0)結(jié)束的字符數(shù)組可以將字符串常量賦給字符串變量字符串常量是由一對(duì)雙引號(hào)括起來(lái)的字符序列空字符0自動(dòng)添加到字符串的內(nèi)部表示中在聲明字符串變量時(shí),應(yīng)該為這個(gè)空結(jié)束符預(yù)留一個(gè)額外元素的空間4聲明字符串變量典型的字符串變量聲明語(yǔ)句如下所示:char str10;str 是一個(gè)字符數(shù)組變量,它最

2、多可以容納包括空結(jié)束符在內(nèi)的 10 個(gè)字符str0str1str2str3str4str5str6str7str8str95字符串常量字符串常量是由一對(duì)雙引號(hào)括起來(lái)的字符序列字符串中的每個(gè)字符作為一個(gè)數(shù)組元素存儲(chǔ)例如 字符串“welcome”在內(nèi)存中按照如下方式存儲(chǔ):WELLCOME06指向字符串變量的字符指針可以使用字符指針來(lái)存儲(chǔ)和訪問(wèn)字符串 聲明字符指針語(yǔ)法:char* pStr;聲明字符串:char str10=“hello”;使用字符指針指向字符串:pStr=str;可以使用字符指針訪問(wèn)字符串,例如pStr0=a; 該代碼將第一個(gè)字符修改為a7指向字符串常量的字符指針可以聲明字符指針直

3、接指向字符串常量,例如char* pStr=“Welcome”;字符指針pStr將指向字符常量“Welcome”“Welcome”為字符串常量,因此其值不能修改,例如代碼pStr0=h;將引發(fā)一個(gè)錯(cuò)誤Welcome0字符串常量不能改變8字符串 I/O 操作2-1字符串 I/O 操作是通過(guò)函數(shù)來(lái)實(shí)現(xiàn)的,這些函數(shù)是標(biāo)準(zhǔn) I/O 庫(kù) stdio.h 的一部分gets() 函數(shù)是接受通過(guò)標(biāo)準(zhǔn)輸入所獲得的字符串的最簡(jiǎn)單的方法它接受按下回車鍵以前輸入的所有字符gets() 函數(shù)用“0”字符替換末尾的換行符“n”語(yǔ)法:gets(str);9字符串 I/O 操作2-2puts() 函數(shù)用于在標(biāo)準(zhǔn)輸出設(shè)備上顯示

4、字符串語(yǔ)法:puts(str);scanf() 和 printf() 函數(shù)用于使用一條語(yǔ)句來(lái)接受并顯示混合數(shù)據(jù)類型接受字符串的語(yǔ)法如下所示:scanf(%s, str);顯示字符串的語(yǔ)法如下所示:printf(%s, str); 10字符串函數(shù)處理字符串的函數(shù)可以在標(biāo)準(zhǔn)頭文件 string.h 中找到。下面列舉了這些函數(shù)執(zhí)行的一些操作: 連接字符串 比較字符串 在字符串中查找一個(gè)字符 將一個(gè)字符串復(fù)制到另一個(gè)字符串中 計(jì)算字符串的長(zhǎng)度11strcat() 函數(shù)將兩個(gè)字符串連接成一個(gè)字符串語(yǔ)法:strcat(str1, str2);將 str2 接到 str1 的末尾函數(shù)返回 str112str

5、cmp() 函數(shù)比較兩個(gè)字符串并根據(jù)比較的結(jié)果返回一個(gè)整數(shù)值語(yǔ)法:strcmp(str1, str2);函數(shù)返回值的情況如下: 如果 str1str2,則返回值大于零13strchr() 函數(shù)判斷某個(gè)字符是否在字符串中出現(xiàn)語(yǔ)法:strchr(str, chr);該函數(shù)返回值的情況如下:如果該字符在字符串中出現(xiàn),將返回對(duì)應(yīng)這個(gè)字符(由 chr 所指向的)在字符串 str 中第一次出現(xiàn)的指針如果未出現(xiàn),則返回 NULL14strcpy() 函數(shù)將一個(gè)字符串中的值復(fù)制到另一個(gè)字符串中語(yǔ)法:strcpy(str1, str2);str2 的值被復(fù)制到 str1 中函數(shù)返回 str115strlen()

6、 函數(shù)確定字符串的長(zhǎng)度語(yǔ)法:strlen(str);該函數(shù)返回一個(gè)表示 str 的長(zhǎng)度的整數(shù)值16將數(shù)組傳遞給函數(shù) 3- 1當(dāng)數(shù)組被當(dāng)作參數(shù)傳遞給函數(shù)時(shí),傳遞的只是該數(shù)組的地址不帶下標(biāo)的數(shù)組名引用的是該數(shù)組的地址void main()int ary10;.fn_ary(ary);.17將數(shù)組傳遞給函數(shù) 3- 2#includevoid main() int num5, ctr, sum=0; int sum_arr(int num_arr); /* Function declaration */ clrscr(); for(ctr=0;ctr5;ctr+) /* Accepts numbers

7、 into the array */printf( nEnter number %d: , ctr+1);scanf(%d, &numctr);聲明數(shù)組以及其他變量18將數(shù)組傳遞給函數(shù) 3- 3sum=sum_arr(num); /* Invokes the function */printf(“nThe sum of the array is %d, sum);int sum_arr(int num_arr) /* Function definition */int i, total;for(i=0,total=0;i5;i+) /* Calculates the sum */total+=

8、num_arri;return total; /* Returns the sum to main() */函數(shù)定義注意函數(shù)參數(shù)的定義函數(shù)調(diào)用注意函數(shù)參數(shù)的傳遞19運(yùn)行程序演示運(yùn)行上述程序,并且解釋如何將數(shù)組傳遞給函數(shù)20將字符串傳遞給函數(shù)的示例3 - 1#include #include void main() char lines520; int ctr, longctr=0; int longest(char lines_arr20); /* Function declaration */for(ctr=0;ctr5;ctr+) /* Accepts string values into

9、 the array */printf( nEnter string %d: , ctr+1);scanf(%s, linesctr);字符串?dāng)?shù)組21將字符串傳遞給函數(shù)的示例 3- 2 longctr=longest(lines); /* Passes the array to the function */printf( nThe longest string is %s , lineslongctr);getch();int longest(char lines_arr20) /* Function definition */int i=0, l_ctr=0, prev_len, new_len;prev_len=strlen(lines_arri); /* Determines the length of the first element */函數(shù)調(diào)用,注意函數(shù)參數(shù)的傳遞函數(shù)定義注意函數(shù)參數(shù)的定義22將字符串傳遞給函數(shù)的示例 3- 3 for(i+;iprev_len)l_ctr=i; /* Stores the subscript of the longer string */prev_len=new_len;return l_ctr;/* Returns

溫馨提示

  • 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)論