面試題中經常出現一類考題就是,重新實現c語言中的庫函式,例如:strcpy,memcpy,stcmp...
/* strcpy函式 */
char *mystrcpy(char *des, const char *src)
/* strlen函式 */
int mystrlen(const char* str)
int my_strlen(const char *str)
/* strcmp函式 */該函式是將兩個字串自左向右逐個字元比較(按ascll值比較大小),直到出現不同字元或者遇到 '\0' 為止。
int mystrcmp(char *s, char *t)
return ((*(unsigned char*)s < *(unsigned char*)t) ? -1:1);
}
/* strcpy與memcpy不同 */
strcpy和memcpy主要有以下3方面的區別。
1、複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。
2、複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符"\0"才結束,所以容易溢位。memcpy則是根據其第3個引數決定複製的長度。
3、用途不同。通常在複製字串時用strcpy,而需要複製其他型別資料時則一般用memcpy
/* memcpy函式實現 */
void * :可以被賦值為任意型別指標物件,但不能做類似 ++、-- 等操作,需要型別轉換才可以
void * mymemcpy(void *dst, const void *src, size_t count)
} else // dst < src,從高位元組(src)往低位元組(dst)拷貝
{ for (int i=0; i
c語言常見函式
原型 extern void malloc unsigned int num bytes 功能 分配長度為num bytes位元組的記憶體塊 返回值 如果分配成功則返回指向被分配記憶體的指標 此儲存區中的初始值不確定 否則返回空指標null。當記憶體不再使用時,應使用free 函式將記憶體塊釋放。函...
C語言 重寫strupr函式
一 重寫函式 action char fun restrupr char str,char desc else desc 0 desc desc strlen str return 0 備註 1.搭配使用 函式返回值是char,可以不用return 0 return desc 函式不寫返回值,用re...
C語言標準庫函式的理解與重寫
1.實現strcpy 2.實現strcat 3.實現strstr 4.實現strchr 5.實現strcmp 6.實現memcpy 7.實現memmove 為了更好的去理解這幾個函式的用法,自己去實現一下功能,才能更好的學習 include size t strlen const char str ...