c語言如何快速入門 c語言str函數(shù)入門基礎(chǔ)知識?
c語言str函數(shù)入門基礎(chǔ)知識?C語言函數(shù) 包含文件:string.h 函數(shù)名: strstr 函數(shù)原型: 1 extern char *strstr(char *str1, const cha
c語言str函數(shù)入門基礎(chǔ)知識?
C語言函數(shù)
包含文件:string.h
函數(shù)名: strstr
函數(shù)原型:
1 extern char *strstr(char *str1, const char *str2)
語法:
1 * strstr(str1,str2)
str1: 被查找目標(biāo) string expression to search.
str2: 要查找對象 The string expression to find.
返回值:若str2是str1的子串,則返回str2在str1的首次出現(xiàn)的地址如果str2不是str1的子串,則返回NULL。
c語言函數(shù)入門基礎(chǔ)知識?
函數(shù)就是一段封裝好的,可以重復(fù)使用的代碼,它使得我們的程序更加模塊化,不需要編寫大量重復(fù)的代碼。函數(shù)可以提前保存起來,并給它起一個獨一無二的名字,只要知道它的名字就能使用這段代碼。函數(shù)還可以接收數(shù)據(jù),并根據(jù)數(shù)據(jù)的不同做出不同的操作,最后再把處理結(jié)果反饋給我們。
什么是函數(shù)
從表面上看,函數(shù)在使用時必須帶上括號,有必要的話還要傳遞參數(shù),函數(shù)的執(zhí)行結(jié)果也可以賦值給其它變量。例如,strcmp() 是一個用來比較字符串大小的函數(shù),它的用法如下:
str1 和 str2 是傳遞給 strcmp() 的參數(shù),strcmp() 的處理結(jié)果賦值給了變量 result。
我們不妨設(shè)想一下,如果沒有 strcmp() 函數(shù),要想比較兩個字符串的大小該怎么寫呢?請看下面的代碼:
比較字符串大小是經(jīng)常的事情,一個程序可能會多次寫一段代碼這樣效率低,出錯率會很高。所以C語言提供了一個功能,允許我們將常用的代碼以固定的格式封裝(包裝)成一個獨立的模塊這個模塊就叫做函數(shù)(Function)。
C語言函數(shù)的形參和實參
C語言函數(shù)的參數(shù)會出現(xiàn)在兩個地方,分別是函數(shù)定義處和函數(shù)調(diào)用處,這兩個地方的參數(shù)是有區(qū)別的。
形參(形式參數(shù))
在函數(shù)定義中出現(xiàn)的參數(shù)可以看做是一個占位符,它沒有數(shù)據(jù),只能等到函數(shù)被調(diào)用時接收傳遞進(jìn)來的數(shù)據(jù),所以稱為形式參數(shù),簡稱形參。
實參(實際參數(shù))
函數(shù)被調(diào)用時給出的參數(shù)包含了實實在在的數(shù)據(jù),會被函數(shù)內(nèi)部的代碼使用,所以稱為實際參數(shù),簡稱實參。
形參和實參的功能是傳遞數(shù)據(jù),發(fā)生函數(shù)調(diào)用時,實參的值會傳遞給形參。
形參和實參的區(qū)別及聯(lián)系
1) 形參變量只有在函數(shù)被調(diào)用時才會分配內(nèi)存,調(diào)用結(jié)束后,立刻釋放內(nèi)存,所以形參變量只有在函數(shù)內(nèi)部有效,不能在函數(shù)外部使用。
2) 實參可以是常量、變量、表達(dá)式、函數(shù)等,無論實參是何種類型的數(shù)據(jù),在進(jìn)行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參,所以應(yīng)該提前用賦值、輸入等辦法使實參獲得確定值。
3) 實參和形參在數(shù)量上、類型上、順序上必須嚴(yán)格一致,否則會發(fā)生“類型不匹配”的錯誤。當(dāng)然,如果能夠進(jìn)行自動類型轉(zhuǎn)換,或者進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,那么實參類型也可以不同于形參類型。
4) 函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳遞是單向的,只能把實參的值傳遞給形參,而不能把形參的值反向地傳遞給實參;
5) 形參和實參雖然可以同名,但它們之間是相互獨立的,互不影響,因為實參在函數(shù)外部有效,而形參在函數(shù)內(nèi)部有效。