思路:定义sign代表符号位默认是1,flag代表数字位的开始下标。遍历字符串,找出第一个符合条件(+、-、数字)的元素下标;判断该下标元素是符号还是数字,如果是符号,则将sign设置为1或-1并将flag++,如果是数字则不作处理;从flag开始遍历字符串,若是数字则添加到新的字符串,直到遇到非数字元素跳出循环,这样新字符串newstr中就获取了符合条件的纯数字;对数字字符串处理:定义result=0,result=result*10+(newstr[i]-'0'),将数字字符串变为正数;最后处理符号位并返回。
注意点:1.关于int型数据判断是否溢出,要设为long型。2.判断时,如果只是对“绝对值”进行判断,只需要判断绝对值是否大于INT_MAX,因为绝对值是正数,不可能小于INT_MIN