atoi和itoa的模拟实现
2018-04-03 09:23
387 查看
#include<stdio.h> #include<ctype.h> #include<iostream> #define MAX (0x7fffffff) #define MIN (0x8000000) int my_atoi(const char*str) { if(str==NULL) return 0; const char*p=str; int flag=1; long long res=0; while(isspace(*p))//判断是否为空字符 { ++p; } if(*p=='-') { flag=-1; ++p; }else if(*p=='+') { ++p; } while(*p>='0'&&*p<='9') { res=res*10+*p-'0'; if(flag==1)//判断是否超过int类型的范围 { if(res>MAX) res=2147483647; } else if(flag==-1) { if(-res<MIN) res=2147483648; } ++p; } return (int)flag*res; } char *my_itoa(int num,char*str,int radix) { char zm[] = "0123456789abcdefghijklmnopqrstuvwxyz"; char *p = str; char arr[100] = {0}; int sum = num; int i = 0; if (radix<2 && radix>36) { printf("error data"); return str; } if (num < 0) { printf("error data"); return str; } while (sum>0) { arr[i] = zm[sum%radix]; i++; sum /= radix; } for (int j = i - 1; j >= 0; --j) { *p = arr[j]; p++; } *p = '\0'; return str; }
相关文章推荐
- 模拟实现C库的atoi和itoa
- 模拟实现atoi、itoa
- 模拟实现memcpy,memmove,atoi,itoa
- 【字符串】模拟实现atoi和itoa
- 模拟实现C库的atoi和itoa——题集(二十三)
- 模拟实现c库的atoi和itoa
- 模拟实现库函数的atoi、atof和itoa
- 模拟实现atoi和itoa以及100G 的IP地址求出现次数最多的前K个IP
- 模拟itoa和atoi
- C语言实现atoi,itoa和atof
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- atoi() & itoa()函数的内部的实现
- 面试题atoi的模拟实现
- atoi及itoa 实现
- atoi和itoa(头文件stdilb.h)的C实现
- atoi与itoa代码实现
- atoi、itoa,strcpy,strcmp,memcpy等实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- atoi,itoa,sprintf等函数的实现