1 2 3 #define Ntoc(val) ((val) < 10 ? "0123456789"[val] : \ 4 "abcdefghijklmnopqrstuvwxyz"[(val) - 10]) 5 6 #define Swap(a, b) (a) ^= (b), (b) ^= (a), (a) ^= (b) 7 8 char * ultoa(value,string,radix)9ultoa(value, string, radix) 10 unsigned long value; 11 char *string; 12 int radix; 13 { 14 char *revp, *retp; 15 16 revp = 17 retp = string; 18 do { 19 *(string++) = Ntoc((int)(value % radix)); 20 value /= (unsigned long)radix; 21 } while (0L < value); 22 *(string--) = 0; 23 while(revp < string) { 24 Swap(*revp, *string); 25 revp++; 26 string--; 27 } 28 29 return (retp); 30 } 31 32 33 #if defined(IPRINTF) 34 char * strupr(string)35strupr(string) 36 char *string; 37 { 38 char *rets; 39 40 rets = string; 41 for ( ; *string != 0; string++) { 42 if ('a' <= *string && *string <= 'z') { 43 *string = *string - 'a' + 'A'; 44 } 45 } 46 47 return (rets); 48 } 49 #endif /* IPRINTF */ 50