itoa atoi ltoa ultoa函数原型实现
2011-07-19 16:26
399 查看
转载自 chinsung最终编辑 想说故我说
/* * FILE: lib/crtdll/stdlib/itoa.c * PURPOSE: converts a integer to ascii * PROGRAMER: * UPDATE HISTORY: * 1995: Created * 1998: Added ltoa Boudewijn Dekker */ itoa函数原型 #include <crtdll/errno.h> #include <crtdll/stdlib.h> #include <crtdll/internal/file.h> /*整形转字符型*/ char *itoa(int value, char *string, int radix) { char tmp[33]; char *tp = tmp; int i; unsigned v; int sign; char *sp; if (radix > 36 || radix <= 1) { __set_errno(EDOM); return 0; } sign = (radix == 10 && value < 0); if (sign) v = -value; else v = (unsigned)value; while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+sign+1); sp = string; if (sign) *sp++ = '-'; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; } /*长整形转字符型*/ char *ltoa(long value, char *string, int radix) { char tmp[33]; char *tp = tmp; long i; unsigned long v; int sign; char *sp; if (radix > 36 || radix <= 1) { __set_errno(EDOM); return 0; } sign = (radix == 10 && value < 0); if (sign) v = -value; else v = (unsigned long)value; while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+sign+1); sp = string; if (sign) *sp++ = '-'; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; } /*无符号长整形转字符型*/ char *_ultoa(unsigned long value, char *string, int radix) { char tmp[33]; char *tp = tmp; long i; unsigned long v = value; char *sp; if (radix > 36 || radix <= 1) { __set_errno(EDOM); return 0; } while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+1); sp = string; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; } /*字符串转整形*/ #include "iostream.h" int toi(const char * s) { int n = 0; while(!(*s >= '0' && *s <= '9')) s++; while(*s >= '0' && *s <= '9') { n *= 10; n += *s - '0'; s++; } return n; } |
相关文章推荐
- atoi和itoa的编程实现
- C函数的实现(strcpy,atoi,atof,itoa,reverse)
- atoi 与 itoa的详解和实现源代码
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi与itoa的C++实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi和itoa的实现
- c函数itoa和atoi实现
- atoi itoa 高效实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi() 与 itoa()函数的内部实现
- atoi 和 itoa实现
- itoa与atoi ftoa与atof的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi() & itoa()函数的内部的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 算法16:实现itoa和atoi
- atoi() & itoa()函数的内部的实现
- atoi() 与 itoa()函数的内部实现
- atoi、itoa,strcpy,strcmp,memcpy等实现