strcmp > String Compare right?
Yes. As google no doubt told you. Or would have, had you asked.
strcat > Is this actually concatenate which is why you empty be string first
Yes and yes, though it is not always necessary to empty the string first, if you really do want to concatenate two strings.
If it is concatenate would the following be valid? How is the terminating character handled?
Yes. The strcat() function overwrites the existing NULL, and adds a new one at the end of the resulting string.
These are C functions right, is there list of string functions anywhere?
Yes, they are. I have a book called Microsoft C Bible that I grab whenever I want to check (for) a C function. But, any C book/tutorial should have plenty of string functions described/listed. And, of course, google is a good resource.
The empty buffer line ...
Will that work on a char[] that already has contents reducing the size of the array?
There are two "sizes". The number of characters in the string (i.e. the index of the NULL) and the size of the array (how many elements it can hold). Moving the NULL changes the first. The second is a constant.
It also doest help that I have realised now that I done even know what I need.
Been there, done that, got the t-shirt.