strcpy函式的實現

2021-07-29 23:04:05 字數 673 閱讀 9391

在面試中,實現strcpy函式是乙個比較常見的考點,但是並不是每個人都能寫的完全正確:

第一種寫法:

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

這種寫法注意的了下面幾點:

1)指標的有效性的判斷

2)返回型別,使得呼叫引數後讓然可以作為坐直,

3)『\0\也需要複製

但是這種演算法的缺陷是,沒有考慮兩個指標的記憶體位址重疊的情況,memcpy函式實現時考慮到了記憶體重疊的情況,可以完成指定大小的記憶體拷貝

下面是第二種寫法,也是正確的寫法:

在寫程式前要注意下面幾點知識:

1)計算機一般為小端儲存,即高位元組放在高位址,,舉例說明如下:

a:int a=0x12345678;12在記憶體中的位址較高

b:對於陣列:char a="1234";需要注意的是,1的位址較低,這與陣列申請記憶體有關係。

下面寫程式:

char*strcpy(char*target,const char*s,int n)

*target= '\0';

} else }

return temp;

}

strcpy函式的實現

感謝分享!cpp view plain copy char my strcpy char dst,const char src 如果注意到 1,檢查指標有效性 2,返回目的指標des 3,源字串的末尾 0 需要拷貝。寫出上面實現函式就不在話下。然而這樣的實現沒有考慮拷貝時記憶體重疊的情況,下面的測試...

strcpy函式的實現

大家一般認為名不見經傳strcpy函式實現不是很難,流行的strcpy函式寫法是 cpp view plain copy char my strcpy char dst,const char src 如果注意到 1,檢查指標有效性 2,返回目的指標des 3,源字串的末尾 0 需要拷貝。寫出上面實現...

strcpy函式的實現

strcpy函式的實現 已知strcpy函式的原型是 char strcpy char dst,const char src 實現strcpy函式 解釋為什麼要返回char 假如考慮dst和src記憶體重疊的情況,strcpy該怎麼實現 1.strcpy的實現 char strcpy char ds...