我有一个字符串初始化{'\0'},每次我循环,并存储一些字符范围从0到9,当我转换atoi(temp),其中temp="2“,它返回我20而不是2我必须做的事情,以获得精确值,帮助需要。
发布于 2010-04-02 15:32:03
无论您在让atoi
工作时遇到什么问题,您都应该使用strtol
。来自libc info手册:
--函数: int atoi (const char *STRING)
此函数类似于atol', except that it returns an
int‘。而是使用atoi' function is also considered obsolete; use
字符串
有关如何使用this answer的示例,请参阅strtol。
发布于 2010-04-02 15:19:57
需要检查的几件事:
如果您重新终止了字符串,那么在添加character(s)?
像这样的东西应该是有效的:
char buffer[2] = {'\0'}; // note "[2]" to set aside two bytes
buffer[0] = '2';
buffer[1] = '\0'; // ensure it's still terminated
printf("%d\n", atoi(buffer));
发布于 2010-06-20 03:22:04
我想,问题不是atoi,而应该是其他的东西。请检查指针,一步一步调试等。
https://stackoverflow.com/questions/2565375
复制相似问题