Use puts() for the version and help messages.
[sigilutils.git] / numbers.h
blob5421243fd6a0c39e75da543c88ad8827b9a3f003
2 #ifndef NUMBERS_H
3 #define NUMBERS_H
5 typedef struct
7 char id;
8 int val;
9 } assoc;
11 char LETTERS[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
13 assoc letter_value (char id, char* ref)
15 char* letters = ref;
17 for (int i = 0; i < 26; i++)
19 if (letters[i] == id)
20 return (assoc) {id, i + 1};
24 int string_value (char* string, char* ref)
26 int result = 0;
27 int length = strlen(string);
29 for (int i = 0; i < length; i++)
31 assoc val = letter_value(string[i], ref);
32 result += val.val;
35 return result;
38 int digital_sum (int num, int base)
40 int result = 0;
41 while (num > 0)
43 result = result + (num % base);
44 num = num / base;
47 return result;
50 int digital_root (int num, int base)
52 while (num > base)
53 num = digital_sum(num, base);
55 return num;
58 #endif