原型宣告:char *strcpy(char* dest, const char *src);
標頭檔案:#include 和 #include
功能:把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間
說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串,返回指向dest的指標。
**如下
char *my_strcpy(char *dest, const char*src)
return ret;
}
原型宣告:extern char *strcat(char *dest, const char *src);
標頭檔案:#include
功能:把src所指向的字串(包括「\0」)複製到dest所指向的字串後面(刪除*dest原來末尾的「\0」)。要保證*dest足夠長,以容納被複製進來的*src。*src中原有的字元不變。返回指向dest的指標。
說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
**如下
char *my_strcat(char *dest, const char*src)
while ((*dest++ = *src++))
return ret;
}
原型宣告:extern
char
*
strstr
(
char
*str1,
const
char
*str2);
標頭檔案:#include
功能:strstr(str1,str2) 函式用於判斷字串str2是否是str1的子串。如果是,則該函式返回str2在str1中首次出現的位址;否則,返回null。
**如下
char *my_strstr(const char* str1, const char* str2)
while (*cp)
if (*substr == '\0')
return cp;
cp++;
}}
原型宣告:extern
int
strcmp
(
const
char
*s1,
const
char
*s2);
標頭檔案:#include
功能:c/c++函式,比較兩個字串設這兩個字串為str1,str2,若str1==str2,則返回零;若str1str2,則返回正數。
**如下
int my_strcmp(const char * src, const char * dst)
原型宣告:void *memcpy(void *dest, const void *src, size_t n);
標頭檔案:#include
**如下
void * my_memcpy(void * dst, const void * src, size_t count)
return(ret);
}
原型:void *memmove( void* dest, const void* src, size_t count );
標頭檔案:
功能:由src所指記憶體區域複製count個位元組到dest所指記憶體區域。
**如下
void *my_memmove(void *dest, const void *src, int n)
} else }
return dest;
}
模擬實現庫函式 printf
上次在部落格中提到過可變引數列表的使用,今天我再次使用可變引數列表來模擬實現庫函式printf。實現 如下 如有不理解的地方請檢視可變引數列表那篇部落格 include includevoid my printf const char format,break case s break defaul...
Mem庫函式模擬實現
本篇檢視 1 memset 2 memcpy 3 memmove 4 memcmp 5 memchr memset 功能 將一段記憶體初始化為某個值 函式拷貝ch 到buffer 從頭開始的count 個字元裡,並返回buffer指標。函式原型 void memset void buffer,int...
模擬實現庫函式strcpy
自己動手實現庫函式strcpy的功能 定義兩個指標,指標dest指向需要進行拷貝的字串,指標src指向被拷貝的字串。如果指標src指向的內容不是 0 把src所指的內容賦給dest所指的內容。然後把src和dest都加1。函式名為my strcpy,返回值為char 兩個引數,分別為字元指標dest...