summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsumuel <samuel@yakubos.org>2026-08-14 01:04:19 +0100
committersumuel <samuel@yakubos.org>2026-08-14 01:04:19 +0100
commitc6c23ca5b4cf58da873b275fd3eedd9a6c659555 (patch)
treedfd326e7b92f946a1622c1c8f8139899dd1908b6
parentc5757982eee8212810dcabb80db43ed4a733147a (diff)
Check strtol and make it print the true name in help
-rw-r--r--main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/main.c b/main.c
index 2b90d43..285ce53 100644
--- a/main.c
+++ b/main.c
@@ -1,20 +1,21 @@
#include <stdio.h>
#include <stdlib.h>
-int print_help(void) {
- printf("Usage: collatz <number>"
- "\nMade by samuel@yakubos.org\n\n");
+int print_help(char *argv[]) {
+ printf("Usage: %s <number>"
+ "\nMade by samuel@yakubos.org\n\n", argv[0]);
return 1;
}
int main(int argc, char *argv[]) {
- if ( argc < 2 || argc > 2) return print_help();
+ if ( argc < 2 || argc > 2) return print_help(argv);
char *endptr;
int int_number = strtol(argv[1], &endptr, 10);
+ if ( *endptr != '\0' ) return print_help(argv);
/* check the number for nonsense */
- if ( int_number <= 0 ) return print_help();
+ if ( int_number <= 0 ) return print_help(argv);
unsigned long long long_num = int_number;
int steps = 0;