#include<stdio.h>
#include<windows.h>
char *my_strncpy(char *arr1, const char *arr, int count)
{
while (count) //复制n个字符,循环n次
{
*arr1++ = *arr++;
count--;
}
if (*(arr1) != '\0')
*(arr1 + 1) = '\0';
return arr1;
}
int main()
{
char *arr = "abcdef";
char arr1[32];
int num = 5;
my_strncpy(arr1,arr,num);
printf("%s", arr1);
system("pause");
return 0;
}
函数算法思想:
定义两个指针,分别指向两个数组,my_strncpy(
arr1,arr,num),第一个参数代表被复制的字符串,第二个参数 代表复制的字符串,第三个代表复制的元素个数。
while循环表示复制num个元素,后面的if分支语句结构表示,如果没有复制完数组arr,要给复制的元素后加 上'\0',如果不加,就不能算是一个完整的字符串,因为缺少‘\0’.