将字符串str2的至多前n个字符复制到字符数组str1中
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include"math.h"
char *my_strncpy(char str1[],char str2[],int n);
main()
{
char str1[] = "abcdef";
char str2[] = "ghijkl";
int n = 0;
printf("请输入n");
scanf("%d",&n);
printf("%s", my_strncpy(str1,str2,n));
system("pause");
}
char *my_strncpy(char *str1, char *str2, int n)
{
char *p = (char*)malloc((strlen(str1) + n+1) * sizeof(char)); //定义动态数组大小来保存结果
int i = 0;
p = str1;
while (*p != '\0') //把指针移动到str1字符串末尾
{
p++;
}
while (*p = *str2)
{
p++;
str2++;
i++;
if (i == n)
{
break;
}
}
*p = '\0';
return str1;
}