While learning C I regularly come across resources which recommend that some functions (e.g. gets()) are never to be used, because they are either difficult or
gets()
strtok() is generally considered to be evil because it stores state information between calls. Don't try running THAT in a multithreaded environment!
strtok()