Pointer version of strcat
It looks idiomatic and bug-free.


s++;



Perhaps ++s as a habit unless postfix s++ is required (as it is during the copy).


while((*s++ = *t++))



Could have just a single pair of parentheses.


void custom_strcat(char *s, char *t)



The signature of strcat is usually char* strcat(char* destination, const char* source). The const means that the source buffer is not modified. The return code is supposed to be a pointer to the original (unmodified) source value, so to implement this the implementation would need to increment a local variable copy of destination.


  This technique couldn't be applied in the first loop because when the loop stops s will point to an irrelevant value.


You could write that as, if (*s) while (*(++s));.