将字符串str2的前n个字符复制到字符数组str1中

将字符串str2的至多前n个字符复制到字符数组str1中

#define _CRT_SECURE_NO_WARNINGS
#include 
#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;
}

将字符串str2的前n个字符复制到字符数组str1中_第1张图片

你可能感兴趣的:(重写函数,c语言)