面試題 自己實現strcpy 函式

2021-06-21 22:05:14 字數 813 閱讀 7356

經常看到需要自己實現字串拷貝函式,網上也有很多博文,但是很多實現都是忽略了一些問題。

具體看**分析。

#include #include using namespace std;

//這個寫法是比較常見的寫法,但是這樣處理記憶體重疊情況會崩潰

char *mystrcpy(char *des,const char *src)

return res;

}char *my_strcpy(char *dst,const char *src)

/*memcpy 從源src所指的記憶體位址的起始位置開始拷貝n個位元組到目標dest所指的記憶體位址的起始位置中

strcpy和memcpy主要有以下3方面的區別。

1、複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。

2、複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符"\0"才結束,所以容易溢位。memcpy則是根據其第3個引數決定複製的長度。

3、用途不同。通常在複製字串時用strcpy,而需要複製其他型別資料時則一般用memcpy

*///自己實現memcpy函式

void * my_memcpy(void *dst,const void *src,unsigned int count)

} else//源位址和目的位址重疊,高位元組向低位元組拷貝 }

return ret;

}int main()

{ char str[10]="abc";

char *des=new char[10];

//cout<

自己實現strcpy函式

include include include source是源字串,desc是目的字串 字串從源字串拷貝到目的字串 void silence strcpy char desc,char source 養成乙個好習慣,判斷主調函式分配的記憶體是否為空 if desc null source null...

常見面試題 重寫strcpy 函式原型

已知strcpy函式的原型是 char strcpy char strdest,const char strsrc 1.不呼叫庫函式,實現strcpy函式 2.解釋為什麼要返回char 1.strcpy的實現 char strcpy char strdest,const char strsrc 1 ...

C 經典面試題之標準庫函式strcpy

標準庫中strcpy的函式原型為 char strcpy char strdest,char strsrc 不能呼叫c c 的字串處理函式下的實現方法 include include 呼叫assert函式 using namespace std 使用標準命名空間 char strcpy char d...