北大青鳥 C語言實現(xiàn) 10_第1頁
北大青鳥 C語言實現(xiàn) 10_第2頁
北大青鳥 C語言實現(xiàn) 10_第3頁
北大青鳥 C語言實現(xiàn) 10_第4頁
北大青鳥 C語言實現(xiàn) 10_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、字符串第十章回顧上一節(jié)課主要講解了以下內(nèi)容:函數(shù)的結(jié)構(gòu)函數(shù)聲明和函數(shù)原型按值傳遞 / 按地址傳遞函數(shù)的作用域規(guī)則多文件程序中的函數(shù)函數(shù)指針2目標解釋字符串變量和常量解釋字符串指針執(zhí)行字符串的輸入/輸出操作解釋各種字符串函數(shù)解釋如何將數(shù)組作為參數(shù)傳遞給函數(shù)講解如何將字符串用作函數(shù)參數(shù)3字符串變量字符串是以空字符(0)結(jié)束的字符數(shù)組可以將字符串常量賦給字符串變量字符串常量是由一對雙引號括起來的字符序列空字符0自動添加到字符串的內(nèi)部表示中在聲明字符串變量時,應(yīng)該為這個空結(jié)束符預留一個額外元素的空間4聲明字符串變量典型的字符串變量聲明語句如下所示:char str10;str 是一個字符數(shù)組變量,它最

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

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

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

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

6、 函數(shù)確定字符串的長度語法:strlen(str);該函數(shù)返回一個表示 str 的長度的整數(shù)值16將數(shù)組傳遞給函數(shù) 3- 1當數(shù)組被當作參數(shù)傳遞給函數(shù)時,傳遞的只是該數(shù)組的地址不帶下標的數(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運行程序演示運行上述程序,并且解釋如何將數(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);字符串數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論