Реализовать функцию - Insert(s, s1, n). Вставка в строку s подстроки s1, начиная с позиции n - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Функция - Insert(s,s1,n). Вставка в строку s подстроки s1, начиная с позиции n (аналогичная библиотечная функция есть в Pascal).

Решение задачи: «Реализовать функцию - Insert(s, s1, n). Вставка в строку s подстроки s1, начиная с позиции n»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <assert.h>
 
char* Insert(char* s, const char* s1, unsigned n) {
    unsigned lenS = strlen(s);
    unsigned lenS1 = strlen(s1);
    assert(n <= lenS);
 
    memmove(s + n + lenS1, s + n, lenS - n + 1);
    memcpy(s + n, s1, lenS1);
 
    return s;
}
 
int main() {
    char text[64] = "Hello !";
    printf("%s\n", Insert(text, "World", 6));
 
    return 0;
}

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы