Hi Ed,
strset() only throws errors if the number of arguments given/provided don't match, if the target string is too small, it just quits, no errors.
In this case, because there are no arguments, strcpy will do fine:
strcpy(s, "Planetary hour ruler and ascendant both cold and dry - melancholic");
However strcpy() also has no error checking at all and if you assign a too wide string it will happily overwrite other vars. This is done for speed, it's more or less assumed that the programmer knows she can't put 10 chars in a 5 char array. So i could add the check to strset() but then i would have to do it for other functions like strcpy() too, and i don't like to do that, more code, less speed. In this way, ab is a dangerous language, just like c / c++, it will overwrite memory if you are not careful.