Looks pretty. Nice job. A small remark, you are not required but it is generally good practice to include the names of the function parameters at the function prototypes, as they tend to improve readability, and document the role of every parameter in the function.
E.g. taken from stdio.h
Code:char *strcpy(char *dest, char *src);