strncpy格式如下
char* strncpy(char* destination, const char* source, size_t num)
即:复制 num个source指针指向的字符到destination。当遇到字符终止符’\0’且复制的个数还没有达到num个时,在destination后面补’\0’。
举例说明:
int main() { char a[20] = "abcdef"; char b[] = "xyz"; strncpy(a, b, 2); printf("%s\n", a); return 0; } '//输出结果为xycdef '
char* my_strncpy(char* destination, const char* source, size_t n) { char* cp = destination; int i = 0; while (*source && i < n) { *cp++ = *source++; i++; } for (int j = i; j < n; j++) { *cp++ = 0; } return destination; } int main() { char a[20] = "abcdefghi"; char b[] = "xyz"; my_strncpy(a, b, 6); printf("%s\n", a); return 0; }