天天看点

模拟实现strcpy和strncpy

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
//模拟实现strcpy
char* my_strcpy(char* str1, const char* str2){
	assert(str1);
	assert(str2);
	while(*(str1++) = *(str2++));
	return str1;
}
//模拟实现strncpy
char* my_strncpy(char* str1, const char* str2, int size){	//size在这里表示字节数
	assert(str1);
	assert(str2);
	while (size){
		*str1++ = *str2++;
		--size;
	}
	return str1;
}
int main(){
	char str1[20] = "abcdefgh";
	char str2[20] = "1232435436asdas";
	my_strncpy(str1, str2, 2);	//最好写为my_strncpy(str1, str2, 2 * sizeof(str1[0]));
	puts(str1);
	my_strcpy(str1, str2);
	puts(str1);
	system("pause");
	return 0;
}
           

继续阅读