我们曾用这个方法测试过:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%d\n",atoi(argv[1]));
return 0;
}
运行如下:
[bl@ncview test]$ ./test 5456321
5456321
[bl@ncview test]$ ./test fsdfa3200
0
[bl@ncview test]$ ./test 123365594999
2147483647
[bl@ncview test]$ ./test 000325fda
325
根据纯数字和非纯数字 字串返回的结果差异,来分别取原串与结果串的长度进行比较的方法,1、纯数字返回长度与结果长度一致,2、带0的数字可以加上取零的个数来比较长度.3、含字母的串返回为0或返回数字,其长度小于结果。。按这样的思路本来可以解决,但问题正如第三条运行结果一样,较长的纯数字串有溢出(或许不是溢出),结果与源串长度不同,就算用atoll转换,%llu输出,照样不能得到与源串相同的串。。望高手指点一二,或有其它算法!!!!谢谢了!!