38 lines
592 B
C
38 lines
592 B
C
|
/*
|
|||
|
* concat.c
|
|||
|
*
|
|||
|
* Created on: 6 июл. 2022 г.
|
|||
|
* Author: alexander
|
|||
|
*/
|
|||
|
|
|||
|
#include "concat.h"
|
|||
|
|
|||
|
#include <stdlib.h>
|
|||
|
#include <string.h>
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
char* concat(char *s1, char *s2)
|
|||
|
{
|
|||
|
size_t len1 = s1 ? strlen(s1) : 0;
|
|||
|
size_t len2 = s2 ? strlen(s2) : 0;
|
|||
|
|
|||
|
char *result = malloc(len1 + len2 + 1);
|
|||
|
|
|||
|
if (!result)
|
|||
|
{
|
|||
|
fprintf(stderr, "malloc() failed: insufficient memory!\n");
|
|||
|
return NULL;
|
|||
|
}
|
|||
|
|
|||
|
if (s1)
|
|||
|
{
|
|||
|
memcpy(result, s1, len1);
|
|||
|
}
|
|||
|
if (s2)
|
|||
|
{
|
|||
|
memcpy(result + len1, s2, len2 + 1);
|
|||
|
}
|
|||
|
|
|||
|
return result;
|
|||
|
}
|