I think I could be wrong though, otherwise:
Wouldn't be right either. Perhaps someone smarter than us will come along
const char * blah(void)
> So I tried to apply it to strings.
You could pass a pointer to a character array which you could then fill with the string...
void peasoup(char * str, size_t n)
if(str == NULL)
memset(str, 0, n);
strncpy(str, "Pea soup!", n - 1);
/* ... */