最近面試到一些基本的問題這裡做個基本的測試,還真發現了小問題
面試問題是:不適用庫函式實現strcpy(char* dst,char* src);
char * str = "abdda1234123";
char * str2;
int i = 0;
i = strlen(str);
str2 = new char[i + 1];
char *tmp = str2;
//strcpy(str2, str);
while (*tmp++ = *str++)
; tmp[i + 1] = '\0';
printf("str2's result:%s", str2);
return 0;
我假設一開始的str2是乙個空指標,所以需要先申請,然後發現如果我在while迴圈中直接用str2,賦值將會失敗。。原因如果有哪位博友告知,感激不盡.....
如果賦值給乙個臨時指標tmp,執行正確;
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...