标签:
// 自己的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;
}
标签:
原文地址:http://blog.csdn.net/zhaoyaqian552/article/details/45643603