По этому поводу будет две школы мысли о том, что является «лучшим».
Одна школа говорит, что, если он функционален и безопасен, любой метод, использующий наименьшее количество ресурсов (память и циклы процессора), является "лучшим".
Одна школа говорит, что, если он функционален и безопасен, любой метод, который легче всего читать и поддерживать (хотя он может быть неэффективным), является "лучшим".
Редактировать: Отредактировал мой ответ, так как я не люблю давать ответы на домашние задания в коде
Как и предлагали другие ответы и комментарии, вам лучше всего почитать документацию для string.h и printf / sprintf.