There is a function again. I have no idea to do that.

Write a function which copies a string into a new string(allocation new memory in the process)such that any lower case characters are converted to upper case(all other characters are coped unaltered) and returns a pointer to that string. The prototype is :

char *strupper(const char *lower);

I know how to allocate memory to something.
but I am little bit confuse that char *strupper(...)
Does it mean that it will return a pointer?

how to achieve it?