/
expanxara
/
String_CustomLib_C
Обзор
Документация
Войти
/
expanxara
/
String_CustomLib_C
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/base_functions/s21_insert.c
36 строк
884 B
ExPanXaRa
initial commit
02 фев 2024, 23:55
02 фев 2024, 23:55
ea3287f
Код
Авторство
О чём код?
#include <stdio.h> #include <stdlib.h> #include "../s21_string.h" // После вызова функции чистить память void *s21_insert(const char *src, const char *str, s21_size_t start_index) { if (!src || !str) return S21_NULL; s21_size_t src_size = 0; while (src[src_size] != '\0') src_size++; if (start_index > src_size) return S21_NULL; s21_size_t str_size = 0; while (str[str_size] != '\0') str_size++; char *result = malloc(sizeof(char) * (src_size + str_size + 1)); if (!result) return S21_NULL; s21_size_t k = 0; for (s21_size_t i = 0; i <= src_size; i++) { if (i == start_index) { for (s21_size_t j = 0; j < str_size; j++) { result[k] = str[j]; k++; } if (start_index == src_size) continue; } result[k] = src[i]; k++; } result[src_size + str_size] = '\0'; return result; }