模拟实现atoi
2017-06-03 22:00
274 查看
//注意到细节问题: /* 一、函数参数 1、形参虚const修饰 2、注意对形参指针判空 二、需要考虑到的细节 1、负数和0(注意区别传入字符‘0’和异常时返回值) 2、空字符串 3、溢出问题 4、输入字符串非非数字字符 */ int G_flag =0;//区别空串 long long strToDig(const char*digit, bool minus) { long long num = 0; if (*digit == '\0') { G_flag = 1;//区别空串 cout << "空字符串" << endl; } while (*digit != '\0') { if ('0'<=*digit&&*digit<'9') { int flag = minus ? -1 : 1; num = num * 10 + flag*(*digit - '0'); if (!minus&&num>0x7FFFFFFF ||minus&&num<(signed)0x80000000)//若前面有没“-”号,则minus为false;!minus即可判断 { cout << "转换整数溢出" << endl; num = 0; break; } digit++; } else { num = 0; break; } } return num; } int StrToInt(const char*string) { long long num = 0; bool minus = false; if (string != NULL&&*string != '\0') { if (*string == '+') string++; else if (*string == '-') { minus = true; string++; } } //开始转换; if (string != '\0') { num = strToDig(string, minus); } return (int)num; }
相关文章推荐
- C语言50题之模拟实现atof、atoi
- 【面试题】剑指Offer-49-模拟实现atoi()函数
- 模拟实现atoi(),字符串循环位移,8bit位指定位的置0或置1
- atoi和itoa的模拟实现
- atoi的模拟实现
- 模拟实现库函数的atoi、atof和itoa
- 【字符串】模拟实现atoi和itoa
- 模拟实现c库的atoi和itoa
- 面试题atoi的模拟实现
- 模拟实现atoi、itoa
- 模拟实现atoi和itoa函数
- 模拟实现atoi,例如输入字符串“12345”,输出整数12345
- 模拟实现atoi和itoa以及100G 的IP地址求出现次数最多的前K个IP
- 题目:模拟实现atoi(字符串转换为整数)函数,比如“12345”转换后就是12345。
- 经典面试编程题--atoi()函数的实现(就是模拟手算,核心代码就一句total = 10 * total + (c - '0'); 但是要注意正负号、溢出等问题)
- 模拟实现C库的atoi和itoa——题集(二十三)
- 模拟实现memcpy,memmove,atoi,itoa
- 模拟实现C库的atoi和itoa
- 用ASP.NET模拟Windows Service来实现定时提醒之类的功能
- 最近在编一个通过代理实现网页模拟点击和POST的Internet程序