首先我們先新建專案,並新建原始檔
然後先呼叫sring.h裡的strlen函式看看該函式的效果
可以看到strlen的結果為字串"abc"的長度
我們又知道對於字串"abc"實際上在字串尾部會存在\0,即字串arr實際上是"abc\0"
那麼先定義自定義函式my_strlen
使它的返回型別為int ,接受的陣列為char 型別。
然後設立一個變數i,用來計算字串長度
使brr遇到\0就停下來,在此之前一直保持加一位
並且當*brr不為\0時,i++
則
可以看到現在的程式碼似乎已經很好的模仿了strlen的功能
但是我們還可以進行改進
改進部分:
由邏輯推理可知當brr=\0時,\0對於條件判斷相當於為0,C語言中0為假,非0為真。當brr=\0時即等同於while(0),while語句不往下執行。
所以我們可以改為這樣:
然後執行:
可以看到執行結果沒有問題
為了更加貼切strlen函式,讓我們開啟MSDN,來檢視strlen這個函式
可以看到strlen的返回型別為size_t,而且char之前有const修飾(size_t是無符號的整形,相當於為0或正數;const 為常變數修飾,防止char中的資料發生改變)
我們也加上
最後執行:
執行成功!