Функции работы со строками

В этом задании необходимо реализовать приведенный ниже список функций работы со строками:


    char *trim(char *s) — обрезает строку s начиная с первого вхождения символа перевода строки (включительно). В качестве возвращаемого значения функция возвращает значение указателя s.

    char *strcpy(char *dst, const char *src) — копирует содержимое строки src в строку dst. В качестве возвращаемого значения функция возвращает значение указателя dst.

    char *strcat(char *dst, const char *src) — присоединяет копию строки src к строке dst и завершает dst нулевым символом. Конечный нуль-символ, первоначально завершающий строку dst, переписывается первым символом строки src. Строка src в результате конкатенации не модифицируется. В качестве возвращаемого значения функция возвращает значение указателя dst.

    int strncmp(const char *s1, const char *s2, int n) — сравнивает в лексикографическом порядке не более n первых символов из двух строк s1 и s2 и возвращает целое занчение, следующим образом зависящее от результата сравнения:
      меньше 0, если s1 < s2; 0, если s1 = s2; больше 0, если s1 > s2.

    const char *strchr(const char *s, char c) — возвращает указатель на первое вхождение символа c в строку s. Если совпадение не обнаружено, возвращается нулевой указатель.

    const char *strrchr(const char *s, char c) — возвращает указатель на последнее вхождение символа c в строку s. Если совпадение не обнаружено, возвращается нулевой указатель.

    const char *strstr(const char *s1, const char *s2) — возвращает указатель на первое вхождение строки s2 в строку s1. Если совпадение не обнаружено, возвращается нулевой указатель.

    int strspn(const char *s1, const char *s2) — возвращает длину начальной подстроки в строке s1, которая состоит только из символов, содержащихся в строке s2.

    int strcspn(const char *s1, const char *s2) — возвращает длину начальной подстроки в строке s1, которая состоит только из символов, не содержащихся в строке s2.

    char *invert(char *s) — все латинские буквы в строке заменяет на противоположные по регистру и значению: ‘a’ на ‘Z’, ‘B’ на ‘y’, ‘c’ на ‘X’ и т. д. В качестве возвращаемого значения функция возвращает значение указателя s.

Использовать в решениях функции библиотек ctype. h и string. h запрещено!