I have used this type of convention many times in my code in the past:
strcpy ( cTmpA, \"hello\" ); sprintf ( cTmpA, \"%s world\", cTmpA );
While it is valid K&R C, you probably want to rather know if it's valid POSIX - see sprintf Specification. We read:
If copying takes place between objects that overlap as a result of a call to sprintf() or snprintf(), the results are undefined.