strncpy:
定义:这个函数的功能是字符串拷贝,它有三个参数,且返回的是目标字符串的起始位置
char *strncpy( char *strDest, const char *strSource, size_t count );
第一个参数是目标字符串的起始位置,它的类型是字符指针类型,第二个参数是源字符串的起始位置,它的类型是字符指针类型,第三个参数是需要复制的字节数。
使用:
#include<stdio.h>
#include<stdlib.h>
//模拟实现strncpy
#include<string.h>
#include<assert.h>
char *my_strncpy( char *dest, const char *src, int sz)
{
int i = 0;
assert(dest);//指针断言,判断指针是否为空;
assert(src);
char *tmp = NULL;
tmp = dest;
//判断需要复制的长度与源字符串的长度进行比较
while (*src != '\0' && sz)
{
*dest = *src;
dest++;
src++;
sz--;
}
//若需要复制的长度大于源字符串的长度,则将剩余长度赋值为‘\0'
if (sz != 0)
{
*dest = '\0';
dest++;
sz--;
}
*dest = '\0';
}
void print(const char *dest)
{
while (*dest)
{
printf("%c", *dest);
dest++;
}
}
int main()
{
char arr1[20] = { 0 };
char arr2[] = "happy";
int len = strlen(arr2);
my_strncpy(arr1, arr2, 5);
print(arr1);//打印目标字符串
system("pause");
return 0;
}