Я реализовал функцию htoi (от шестнадцатеричного целого до восьмеричного целого) в C. Сигнатура функции выглядит следующим образом:
int htoi(char* s);
Основная логика довольно проста, и моя главная задача - как справиться сданные экстремальных испытаний, такие как недопустимое шестнадцатеричное число, такое как oxazzz , ox ??? DFSLA .Очевидно, что некоторое магическое число не будет работать, поскольку результатом могут быть любые целые числа.
Одно из решений, которое я хотел бы принять, - изменить сигнатуру функции, например:
int htoi(char* s, bool* error);
И установите ошибку как true, если s не является действительным шестнадцатеричным числом. Но кажется, что это не очень хорошее решение.Следовательно, что должно быть лучшим решением для решения этой ситуации, поскольку в C нет механизма выброса исключений?