標準庫函式strcpy函式實現

2021-08-04 23:54:47 字數 791 閱讀 9556

最近在為找工作準備,無意中看到一道程式設計題目:實現

標準庫函式strcpy()

題目比較簡單,主要考察以下兩點知識:

(一)c風格的字串以'\0'結尾;

(二)規範的程式設計習慣。

下面貼出博主用c++實現的**:

#include#include//呼叫assert函式

using namespace std;//使用標準命名空間

char* stringcopy(char *dst,const char *src)//dst長度必須大於等於src,否則會出錯

*dst='\0';//字串末尾為'\0'字元

return result;

}

對**再補充說明幾點:

①當assert函式中引數為邏輯假時,會列印出一條錯誤資訊,並結束程式。這裡呼叫assert函式來保證dst、src為非空指標;

②dst、src指向空位址就是說dst、src為空指標;dst、src為空字串時沒有指向空位址,前面已經提過c風格的字串以『\0』結尾,所以,dst、src為空字串時,指向儲存有乙個'\0'字元的記憶體位址;

③返回char *型別目的是可以鏈式呼叫stringcopy()。鏈式使用就是作為函式表示式的一部分。

④上述**並沒有考慮dst字串的長度比src小的問題。其實,標準庫中的strcpy()函式也沒有考慮此問題。

實現C庫函式strcpy

原型宣告 char strcpy char dst,const char src strcpy 實現沒有檢查dst和src記憶體重疊問題 char strcpy char dst,const char src const約束,內容不可變 return pstr 返回dst,允許鏈式表示式 檢查記憶體...

庫函式strcpy的實現討論

在寫c程式的時候,經常會用到串拷貝strcp這個庫函式,它的主要功能就是將一串字串常量拷貝到乙個字串變數裡 而不是乙個字串常量,必須要有儲存空間 雖然這個函式的實現比較簡單,但是最基本的東西往往容易被人忽視。使用庫函式中strcpy的方法如下 自己定義實現strcpy庫函式的方法如下 經指出,上述自...

模擬實現庫函式strcpy

自己動手實現庫函式strcpy的功能 定義兩個指標,指標dest指向需要進行拷貝的字串,指標src指向被拷貝的字串。如果指標src指向的內容不是 0 把src所指的內容賦給dest所指的內容。然後把src和dest都加1。函式名為my strcpy,返回值為char 兩個引數,分別為字元指標dest...