Solène Altaber
/
calendrier
affichage calendrier
fonction.cpp@0:c2359ca01ec0, 2021-06-07 (annotated)
- Committer:
- altaber
- Date:
- Mon Jun 07 08:09:48 2021 +0000
- Revision:
- 0:c2359ca01ec0
calendrier
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
altaber | 0:c2359ca01ec0 | 1 | |
altaber | 0:c2359ca01ec0 | 2 | /** |
altaber | 0:c2359ca01ec0 | 3 | * C++ version 0.4 char* style "itoa": |
altaber | 0:c2359ca01ec0 | 4 | * Written by Lukás Chmela |
altaber | 0:c2359ca01ec0 | 5 | * Released under GPLv3. |
altaber | 0:c2359ca01ec0 | 6 | */ |
altaber | 0:c2359ca01ec0 | 7 | |
altaber | 0:c2359ca01ec0 | 8 | char* itoa(int value, char* result, int base) |
altaber | 0:c2359ca01ec0 | 9 | { |
altaber | 0:c2359ca01ec0 | 10 | // check that the base if valid |
altaber | 0:c2359ca01ec0 | 11 | if ( base < 2 || base > 36 ) { |
altaber | 0:c2359ca01ec0 | 12 | *result = '\0'; |
altaber | 0:c2359ca01ec0 | 13 | return result; |
altaber | 0:c2359ca01ec0 | 14 | } |
altaber | 0:c2359ca01ec0 | 15 | |
altaber | 0:c2359ca01ec0 | 16 | char* ptr = result, *ptr1 = result, tmp_char; |
altaber | 0:c2359ca01ec0 | 17 | int tmp_value; |
altaber | 0:c2359ca01ec0 | 18 | |
altaber | 0:c2359ca01ec0 | 19 | do { |
altaber | 0:c2359ca01ec0 | 20 | tmp_value = value; |
altaber | 0:c2359ca01ec0 | 21 | value /= base; |
altaber | 0:c2359ca01ec0 | 22 | *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz"[35 + (tmp_value - value * base)]; |
altaber | 0:c2359ca01ec0 | 23 | } while ( value ); |
altaber | 0:c2359ca01ec0 | 24 | |
altaber | 0:c2359ca01ec0 | 25 | // Apply negative sign |
altaber | 0:c2359ca01ec0 | 26 | if ( tmp_value < 0 ) |
altaber | 0:c2359ca01ec0 | 27 | *ptr++ = '-'; |
altaber | 0:c2359ca01ec0 | 28 | *ptr-- = '\0'; |
altaber | 0:c2359ca01ec0 | 29 | |
altaber | 0:c2359ca01ec0 | 30 | while ( ptr1 < ptr ) { |
altaber | 0:c2359ca01ec0 | 31 | tmp_char = *ptr; |
altaber | 0:c2359ca01ec0 | 32 | *ptr-- = *ptr1; |
altaber | 0:c2359ca01ec0 | 33 | *ptr1++ = tmp_char; |
altaber | 0:c2359ca01ec0 | 34 | } |
altaber | 0:c2359ca01ec0 | 35 | |
altaber | 0:c2359ca01ec0 | 36 | return result; |
altaber | 0:c2359ca01ec0 | 37 | } |
altaber | 0:c2359ca01ec0 | 38 |