我有这段代码,但是这里atoi根本不起作用
如果我给了基地址,那么也会导致问题
int main()
{
char *token;
int value;
char data = "23+100";
int i = 0;
while(data[i] != '+' )
{
value = atoi(data[i]);
push(value,&top1);
i++;
}
}
最佳答案
这个:
char data = "23+100";
真的不应该编译。
它应该是:
const char *data = "23+100";
这将使
atoi(data[i]);
的正确性比以前更低。另外,您不应该在这样的子字符串上使用
atoi()
。也许您应该看sscanf()
或strtok()
,或者(如果我正确理解您的要求,也许最好)strtol()
。后者允许您解析
long
整数,直到找到一个非数字字符,并且还可以让您确定调用之后是哪个字符。关于c - atoi在C程序中的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22175095/