Когда это возможно (а не снижение производительности), я предпочитаю передавать данные в функции как константы. В вашем случае я не вижу причин не делать этого, поэтому я бы объявил вашу функцию как
static void formatPhoneNum(char *dst, const char *src);
или даже, возвращая длину нового номера:
static int formatPhoneNum(char *dst, const char *src);
Затем просто скопируйте цифры из src
в dst
, вставив тире в нужные места. Вызывающий отвечает за предоставление места в dst
и проверку возвращаемого значения: если 12 (включая тире), все в порядке; в противном случае произошла ошибка.
Вы можете вернуть отрицательное число, чтобы указать возможные ошибки. Например: -1 будет означать, что src
недостаточно длинный; -2 означает неправильный формат для src
и т. Д. *
Документировать все возвращаемые значения!
Oh! И не забывайте, чтобы NUL прекращал dst
!