最近在為找工作準備,無意中看到一道程式設計題目:實現標準庫函式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...