The premise is wrong:
&quot;constructing a larger string out of multiple smaller strings is a pretty common programming task&quot;<p>No, it&#x27;s not.<p>&quot;strcat(strcat(strcat(strcpy(buf, &quot;This &quot;),&quot;is &quot;),&quot;a long &quot;),&quot;string.&quot;);&quot;<p>Just checked 20 years of C&#x2F;C++ repositories ... not a single strcat.
Actually I can&#x27;t remember ever using c-strings for more than args parsing or debug logging.