码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-05-11 14:48:35      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

// 自己的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;
}


技术分享


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

标签:

原文地址:http://blog.csdn.net/zhaoyaqian552/article/details/45643603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!