strtol
int parse(char* str, long* result) {
char *end = NULL;
*result = strtol(str, &end, 10);
if (str == end || *end != '\0' || errno == ERANGE) {
return -1;
}
return 0;
}
int main() {
long value;
if (parse("12313", &value)) {
printf("Ошибка");
} else {
printf("Результат: %ld", value);
}
}
// 123 -> Результат: 123
// 123.0 -> Ошибка