add: strjoin and strmerger
This commit is contained in:
parent
801e5e32e5
commit
eabd3070db
@ -1,4 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -6,3 +8,5 @@
|
|||||||
char **split(const char *str, const char *delimiter);
|
char **split(const char *str, const char *delimiter);
|
||||||
void str_shift(char *str, int shift);
|
void str_shift(char *str, int shift);
|
||||||
int str_contain_only(const char *str, const char *charset);
|
int str_contain_only(const char *str, const char *charset);
|
||||||
|
char* str_merger(size_t arg_len, ...);
|
||||||
|
char* str_join(const char* s1, const char* s2);
|
||||||
|
14
src/str/str_join.c
Normal file
14
src/str/str_join.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include "str.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
char *str_join(const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
char *out;
|
||||||
|
|
||||||
|
out = malloc((strlen(s1) + strlen(s2) + 1) * sizeof(char));
|
||||||
|
if (out == NULL)
|
||||||
|
return (NULL);
|
||||||
|
strcpy(out, s1);
|
||||||
|
strcat(out, s2);
|
||||||
|
return out;
|
||||||
|
}
|
21
src/str/str_merger.c
Normal file
21
src/str/str_merger.c
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#include "str.h"
|
||||||
|
|
||||||
|
char *str_merger(size_t arg_len, ...)
|
||||||
|
{
|
||||||
|
va_list va;
|
||||||
|
char *out;
|
||||||
|
char *temp;
|
||||||
|
|
||||||
|
va_start(va, arg_len);
|
||||||
|
out = str_join(va_arg(va, char *), va_arg(va, char *));
|
||||||
|
while (arg_len > 2)
|
||||||
|
{
|
||||||
|
temp = str_join(out, va_arg(va, char *));
|
||||||
|
free(out);
|
||||||
|
if (temp == NULL)
|
||||||
|
return (NULL);
|
||||||
|
out = temp;
|
||||||
|
arg_len--;
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user