c語言str函數(shù)入門基礎知識?
C語言函數(shù)
包含文件:string.h
函數(shù)名:strstr
函數(shù)原型:
1 externchar*strstr(char*str1,constchar*str2)
語法:
1 *strstr(str1,str2)
str1:被查找目標 stringexpressiontosearch.
str2:要查找對象 Thestringexpressiontofind.
返回值:若str2是str1的子串,則返回str2在str1的首次出現(xiàn)的地址如果str2不是str1的子串,則返回NULL。
c語言函數(shù)入門基礎知識?
函數(shù)就是一段封裝好的,可以重復使用的代碼,它使得我們的程序更加模塊化,不需要編寫大量重復的代碼。函數(shù)可以提前保存起來,并給它起一個獨一無二的名字,只要知道它的名字就能使用這段代碼。函數(shù)還可以接收數(shù)據(jù),并根據(jù)數(shù)據(jù)的不同做出不同的操作,最后再把處理結(jié)果反饋給我們。
什么是函數(shù)
從表面上看,函數(shù)在使用時必須帶上括號,有必要的話還要傳遞參數(shù),函數(shù)的執(zhí)行結(jié)果也可以賦值給其它變量。例如,strcmp()是一個用來比較字符串大小的函數(shù),它的用法如下:
str1和str2是傳遞給strcmp()的參數(shù),strcmp()的處理結(jié)果賦值給了變量result。
我們不妨設想一下,如果沒有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)用時接收傳遞進來的數(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)實參可以是常量、變量、表達式、函數(shù)等,無論實參是何種類型的數(shù)據(jù),在進行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。
3)實參和形參在數(shù)量上、類型上、順序上必須嚴格一致,否則會發(fā)生“類型不匹配”的錯誤。當然,如果能夠進行自動類型轉(zhuǎn)換,或者進行了強制類型轉(zhuǎn)換,那么實參類型也可以不同于形參類型。
4)函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳遞是單向的,只能把實參的值傳遞給形參,而不能把形參的值反向地傳遞給實參;
5)形參和實參雖然可以同名,但它們之間是相互獨立的,互不影響,因為實參在函數(shù)外部有效,而形參在函數(shù)內(nèi)部有效。