strncat函数的模拟实现
char* my_strncat(char* dest, char* src, size_t size) { assert(dest && src); size_t len = strlen(dest); for (size_t i = 0; i < size; i++) { *(dest + len + i) = *(src + i); } return dest; } int main() { char dest[20] = "Hello"; char src[] = " World"; //strncat(dest, src, strlen(src)); my_strncat(dest, src, strlen(src)); printf("%s\n", dest); return 0; }
输出:Hello World
strncpy的模拟实现:
char* my_strncpy(char* dest, char* src, size_t size) { assert(dest && src); char* ret = dest; for (size_t i = 0; i < size; i++) { *dest++ = *src++; } *dest = '\0'; return ret; } int main() { char dest[20] = "Hello"; char src[] = "Hello World"; my_strncpy(dest, src, strlen(src)); //strncpy(dest, src, strlen(src)); printf("%s\n", dest); return 0; }
输出:Hello World