C Atoi函数给我随机数

C Atoi函数给我随机数,c,C,你好,我有一个函数叫做 int SearchKey(char key[]). 我给出的关键是这样的字符串2014-02-13T23:50:00 在函数中,我只保留数字,这意味着我的字符串如下:2014021325000 在这部分之前,一切都是完美的 在我调用atoi函数之后 NewResult=atoi(result); 我的NewResult包含随机数(NewResult是int),但是当我主要完成整个过程时,我没有遇到任何问题 谢谢大家,我使用strtoll函数制作了它。来自[emp

你好,我有一个函数叫做

int SearchKey(char key[]).
我给出的关键是这样的字符串2014-02-13T23:50:00

在函数中,我只保留数字,这意味着我的字符串如下:2014021325000

在这部分之前,一切都是完美的

在我调用atoi函数之后

 NewResult=atoi(result); 
我的NewResult包含随机数(NewResult是int),但是当我主要完成整个过程时,我没有遇到任何问题

谢谢大家,我使用strtoll函数制作了它。

来自[emphasis added]:

int atoi(常量字符*str)

返回值

成功时对应于str内容的整数值如果转换后的值超出相应返回类型的范围,则返回值未定义。如果无法执行转换,​0​ 他回来了


相反,您应该使用族函数,
strtoll()
来转换如此大的值。与
atoi()
系列函数相比,它们还提供了更好的错误处理。

2014021325000对于
int
来说太大了。当我基本上有相同的东西时,它工作得很好。我应该试试strtoll吗?试试
long-long-atol(const-char*str)。。。但是strtoll提供了更好的检查功能。
基本上工作正常
代码胜于雄辩。发布完整的代码,有人会发现的。“基本上是一样的,它工作得非常完美。”-->code优化了
atoi()
调用。若超出范围,则结果为UB。发送一个Commnet清洁器-嘟嘟嘟嘟