Есть ли в C инструменты для добавления строк?

Я делаю функцию, которая возвращает производную функции, которая представлена ​​в виде дерева, как

      /   +    \
     *          ^
   /   \      /   \
  x     5   3.14   x

с узлами формы

typedef struct node
{
    char * fx; // function
    struct node * gx; // left-hand side
    char * op; // operator
    struct node * hx; // right-hand side
} node;

Если узел не имеет дочерних элементов, напримерx, 5, 3.14 в приведенном выше примере, то егоop, gx а такжеhx являютсяNULLи в противном случае егоfx являетсяNULL.

Моя функция для вычисления производной выглядит так

char * deriveFromTree ( node * rt )
{
    char * buff = malloc(100*sizeof(char));
    int curBuffIdx = 0;
    if (rt->op) // if rt is of the form rt = gx op hx
    {
        char * dgdx = deriveFromTree(rt->gx); // g'(x)
        char * dhdx = deriveFromTree(rt->hx); // h'(x)
        char thisop = *rt->op;
        if (thisop == '+' || thisop == '-')
        {
            // ... want to do equivalent of
            //     buff = dgdx + thisop + dhdx
        }
        else if (thisop == '*')
        {
            // ...
        }
        else if (thisop == '/')
        {
            // ...
        }
        else if (thisop == '^')
        {
            // ...
        }
    }
    else // rt is a base expression -- x or a constant
    {
        buff[curBuffIdx] = strcmp(rt->fx, 'x') ? '1': '0';
    }
    buff[++curBuffIdx] = '\0';
    return buff;
}

но я запутался во всем добавлении строки. Я мог бы создать с нуля строку сумматор, если уже есть компактный способ сделать

            // ... want to do equivalent of
            //     buff = dgdx + thisop + dhdx

тогда я хотел бы использовать этот инструмент.

Ответы на вопрос(3)

Ваш ответ на вопрос