【c语言】自己的strncpy与库里的strncpy区别

时间:2015-05-11 14:48:35   收藏:0   阅读:163
// 自己的strncpy与库里的strncpy区别

#include <stdio.h>

#define CHAR char
#define ULONG unsigned long

CHAR *VOS_strncpy(CHAR *pcDest, const CHAR *szSrc, ULONG ulLength)
{
	CHAR *pcPoint = pcDest;
	// 对指针进行判空
	if ((NULL == szSrc)||(NULL == pcDest))
	{
		return NULL;
	}
	while (ulLength && (*pcPoint = *szSrc))
	{
		pcPoint++;
		szSrc++;
		ulLength--;
	}
	// 区别来了,如果拷贝完了原先的字符串里还有东西就在后边放一个‘\0’
	if (!ulLength)
	{
		*pcPoint = '\0';
	}
	return pcDest;
}

int main()
{
	CHAR szStrBuf[] = "1234567890";
	CHAR szStrBuf1[] = "1234567890";
	strncpy(szStrBuf, "ABC", strlen("ABC"));
	VOS_strncpy(szStrBuf1, "ABC", strlen("ABC"));
	printf("Str1 = %s\nStr2 = %s\n", szStrBuf, szStrBuf1);
	return 0;
}


技术分享


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!