Написать функцию которая возвращает строку с тремя пробелами между слов, начало и конец строки не должны быть с пробелом?

Вот пример функции на языке программирования C, которая выполняет указанное требование:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* insertSpaces(const char* input) {
    int length = strlen(input);
    char* output = malloc((3 * length + 1) * sizeof(char)); // выделяем память для строки с тремя пробелами между словами

    int i, j;
    int wordCount = 0;
    int spaceCount = 0;

    for (i = 0, j = 0; i < length; i++) {
        if (input[i] == ' ') {
            if (wordCount > 0) { // пробелы между словами
                if (spaceCount < 3) { // ограничиваем количество пробелов
                    output[j++] = ' ';
                    spaceCount++;
                }
            }
        }
        else {
            if (i > 0 && input[i - 1] == ' ' && wordCount > 0) { // пробелы после слов
                output[j++] = ' ';
                spaceCount = 1;
            }
            
            output[j++] = input[i];
            wordCount++;
        }
    }

    output[j] = ''; // завершаем строку символом конца строки

    return output;
}

int main() {
    const char* input = "Это пример входной строки без пробелов.";
    char* result = insertSpaces(input);
    printf("%sn", result);
    free(result); // освобождаем память, выделенную для результата

    return 0;
}

В этой программе используется функция insertSpaces, которая принимает входную строку и возвращает новую строку с тремя пробелами между словами. Сначала функция определяет, сколько символов занимает входная строка, затем выделяет память для новой строки.

Затем происходит обход входной строки символ за символом. Если текущий символ - пробел, то считается количество пробелов между словами. Если текущий символ - не пробел, то он добавляется в выходную строку, а также добавляется пробел после слова, если предыдущий символ был пробелом.

После обхода входной строки, в конец выходной строки добавляется символ конца строки ('').

В функции main показан пример использования функции insertSpaces. Входная строка "Это пример входной строки без пробелов." передается в функцию insertSpaces, результат сохраняется в переменную result и выводится на экран.

Обратите внимание на то, что в конце программы необходимо освободить выделенную память с помощью функции free, чтобы избежать утечек памяти.