| strncpychar* strncpy(char* destination, const char* source, size_t num);
 1.拷贝num个字符从源字符串到目的空间2.如果源字符串的长度小于mun,则拷贝完源字符串之后,在目标的后面加0,直到num个。
 #include<stdio.h>
int main() {
	char arr1[10] = "abcdef";
	char arr2[] = "hello world";
	strncpy(arr1, arr2, 4);
	printf("%s\n", arr1);
	getchar();
	return 0;
}
 拷贝后
  可见,没有将’\0’拷贝过来
 当拷贝的源字符串长度小于参数时,后面补’\0’
 #include<stdio.h>
int main() {
	char arr1[10] = "abcdefghi";
	char arr2[] = "hello";
	strncpy(arr1, arr2, 9);
	printf("%s\n", arr1);
	getchar();
	return 0;
}
 拷贝后
  strncpy模拟实现#include<stdio.h>
char* my_strncpy(char* dest, const char* src, size_t num) {
	char* dest1 = dest;
	assert(dest && src);
	while ((num)&&(*dest++ = *src++)) {
		num--;
	}
	while((*src == '\0')&&(num)) {
		*dest++ = '\0';
		num--;
	}
	return dest1;
}
int main() {
	char arr1[10] = "abcdefghi";
	char arr2[] = "hello";
	my_strncpy(arr1, arr2, 4);
	printf("%s\n", arr1);
	getchar();
	return 0;
}
 |