【c语言】不要库函数自己实现字符串的复制

【c语言】不用库函数自己实现字符串的复制
// 字符串的复制

#include <stdio.h>
//用数组下标实现
char * my_strcpy( char *dst,char *src)
{
	int i = 0;
	while( *src != '\0')
	{
		dst[i++] = *src;
			src++;
	}
	dst[i] = '\0';
	return dst;
}

int main()
{
	char dst[] = "bvfhrhljdhfleahf";
	char *src = "dandanwa";
	my_strcpy( dst,src);
	printf("复制后的字符串是:%s\n",dst);
	return 0;
}


//用指针实现

#include <stdio.h>
char * my_strcpy( char *dst,char *src)
{
	char *ret = dst;
	while( *src != '\0')
	{
		*dst = *src;
		src++;
		dst++;
	}
	*dst = '\0';
	return ret;
}

int main()
{
	char dst[] = "bvfhrhljdhfleahf";
	char *src = "dandanwa";
	my_strcpy( dst,src);
	printf("复制后的字符串是:%s\n",dst);
	return 0;
}





//用指针实现,可以把功能函数里边的语句再进行优化缩减

#include <stdio.h>
char * my_strcpy( char *dst,char *src)
{
	char *ret = dst;
	while( *src != '\0')
	{
		*dst++ = *src++;
	}
	*dst = '\0';
	return ret;
}

int main()
{
	char dst[] = "bvfhrhljdhfleahf";
	char *src = "dandanwa";
	my_strcpy( dst,src);
	printf("复制后的字符串是:%s\n",dst);
	return 0;
}



//当然也可以把语句写在循环条件里,更简洁

#include <stdio.h>
char * my_strcpy( char *dst,char *src)
{
	char *ret = dst;
	while( 	*dst++ = *src++)
	{
		;
	}
	*dst = '\0';
	return ret;
}

int main()
{
	char dst[] = "bvfhrhljdhfleahf";
	char *src = "dandanwa";
	my_strcpy( dst,src);
	printf("复制后的字符串是:%s\n",dst);
	return 0;
}



//为了让程序员调试起来更方便,可以加断言
//哪个量不可以改变的时候记得给前边加const
#include <stdio.h>
#include <assert.h>
char * my_strcpy( char *dst,char const *src)
{
	char *ret = dst;
	assert( ( dst != NULL ) && ( src != NULL ) );
	while( 	*dst++ = *src++)
	{
		;
	}
	*dst = '\0';
	return ret;
}

int main()
{
	char dst[] = "bvfhrhljdhfleahf";
	char *src = "dandanwa";
	my_strcpy( dst,src);
	printf("复制后的字符串是:%s\n",dst);
	return 0;
}





【c语言】不要库函数自己实现字符串的复制