我有这段代码,但是这里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/

10-12 05:58