求助一道c语言指针编程题

2025-01-03 22:21:35
推荐回答(1个)
回答1:

#include 
#include 
#include 
/* FUNCTION:
 * 将字符串_src插入字符串_dest指定位置n处,其中n与字符串下标一致
 * 返回值:
 * 成功:返回目标字符串首地址
 * 失败:返回NULL
 * */
char *insert(char *_dest, char *_src, int n)
{
    char tmp[256];
    int len;
    if (_dest==NULL || _src==NULL || n<0)
    {
        printf("参数不合法\n");
        return NULL;
    }
    memset(tmp,0x00, sizeof(tmp));
    memcpy(tmp, _dest, n);
    len = strlen(tmp);
    len += snprintf(tmp+strlen(tmp), sizeof(tmp)-strlen(tmp), "%s%s", _src, _dest+n);
    memset(_dest, 0x00, len+1);
    memcpy(_dest, tmp, len);
    
    return _dest;
}

/*测试函数*/
int main()
{
    char arry1[128];
    char arry2[64];
    char *p = NULL;
    memset(arry1, 0, sizeof(arry1));
    memset(arry2, 0, sizeof(arry2));
    strcpy(arry1, "ABCDEFGHIGKLMN");
    strcpy(arry2, "123456");
    printf("arry1[%s]\n", arry1);
    printf("arry2[%s]\n", arry2);
    p = insert(arry1, arry2, 4);
    if (p == NULL)
    {
        printf("函数调用失败\n");
        return -1;
    }
    else
    {
        printf("New Arry[%s]\n", arry1);
    }
    return 0;
}

希望有帮到你。