strncpy
指定个数的字符串拷贝
库函数内的声明
char * strncpy ( char * destination, const char * source, size_t num );
简单例子
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[10] = "abcdefgh";
char arr2[] = "bit";
strncpy(arr1, arr2, 6);
printf("%s", arr1);
return 0;
}
//内存中arr1里面是bit\0\0\0gh\0
//结果:bit
使用:
1.拷贝num个字符从源字符串到目标空间。
2.如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加\0,直到num个。
my_strncpy实现方法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
char* my_strncpy(char* dest, const char* source, int count)
{
assert(dest != NULL);
assert(source != NULL);
char* ret = dest;
while (count && (* dest++ = *source++))
{
count--;
}
if (count)
{
while (--count)
{
*dest++ = '\0';
}
}
return ret;
}
int main()
{
char arr1[10] = "abcdefgh";
char arr2[] = "bit";
my_strncpy(arr1, arr2, 6);
printf("%s", arr1);
return 0;
}