I haven’t had as much trouble with those as they mostly do what it says on the tin. strcpy(), sprintf(), etc. all have slightly different semantics and even their “n” versions will do funky things if you don’t very carefully account for null termination. I find it way harder to use those because I have to keep remembering which of them does what regarding \0 at the end. And I guess now we have strlcpy() which is supposed to fix those issues but isn’t available on all platforms I use.