#include <stdio.h>
#include <assert.h>

void *manger(void* str, void* str1, size_t count)
{
    assert(str == NULL || str1 == NULL);

    char* ch1;
    const char* ch2;
    if (str < str1 || str > (str1 + count))
    {
        ch1 = (char*)str;
        ch2  = (char*)str1;
        while (count -- )
        {
            *ch1++ = *ch2++;
        }   
    }
    else /* overlap */
    {
        ch1 = (char*)(str + count - 1);
        ch2 = (char*)(str1 + count - 1);
        while (count -- ){
            *ch1 -- = *ch2 --;
        }
    }
    return str;
}