思路:1.‘+’,‘-’问题2.NULL,‘\0’问题3.其他字符问题,包括空格、tab4.越界溢出问题5.数字前面几位是0
#include<iostream>
usingnamespacestd;
#include<stdlib.h>
enumStatus{KValid=0,KInvalid};//KVlid-合法KInvalid-非法
intg_nStatus=KValid;//在最后..
分类:
其他好文 时间:
2017-02-14 22:31:17
阅读次数:
188
标准库函数atoi用于将字符串类型的数据转换为整形数据:在转换过程中要考虑空指针、空字符串""、正负号,溢出等情况 这里是将字符串str转换为32位整型,其正数的最值为0x7FFFFFFF,负数的最小值为0x80000000(可参考有符号类型的最小负数的补码的由来),通过这两个值来判断是上溢还是下溢 ...
分类:
其他好文 时间:
2016-08-20 13:20:26
阅读次数:
143
在C++中有两个系统函数可以实现字符串转浮点型和字符串转整形,下面实现一下这两个函数。#include #include using namespace std;double atof(const char* s)//字符型转浮点型{ int i = 0; int k = 1; double d.....
分类:
编程语言 时间:
2015-01-27 00:17:25
阅读次数:
242
处理策略完全模仿c语言的库函数
溢出处理策略:
输出上界或下界(2147483647和-2147483648)
测试数据:
char* s1 = " \t\f\v\n\r-00100\n\t\f\v\n\r1234";
char* s2 = "--099";
char* s3 = "s100";
char* s4 = "+2147483647sc";
char* s5 = "2...
分类:
其他好文 时间:
2014-12-14 07:06:50
阅读次数:
168
int atoi(const char *nptr);
如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整形数。否则,返回零。
这里需注意:如果字符串是非法输入:字符串为空,只有一个‘+’或‘-’,非数字等返回的是整形数0;而如果输入是“0”,返回的也是整形数0。对于这样的情况,atoi()是通过一个全局变量来区分的。...
分类:
其他好文 时间:
2014-08-09 23:15:29
阅读次数:
267
记得去年9月28日赶到交大去听july的算法面试讲座,他给我们出的第一个题目就是用代码实现atoi,限时10mins。由于当时很久没接触编程,当堂没写出来。记得当时讲解的时候就是要我们特别注意边界条件。写程序就像砌围墙,得先把边界条件弄好。转眼一年过去了,再过几个月就要出去hunting job.....
分类:
编程语言 时间:
2014-07-07 10:05:41
阅读次数:
279