Because the performance hit of extraneous strlen() calls is generally negligible. This in turn is because strlen() maps to &quot;repne scasb&quot; assembly instructions, which run in 4 cycles per byte + 8 cycles of fixed cost. That&#x27;s <i>cheap as dirt</i>.<p>You will indeed have a problem if you strcat() excessively, but then it will be a marginal case, so you will optimize for it in your own code rather than dragging it into the standard.