This question already has answers here:
C char* to int conversion
                                
                                    (2个答案)
                                
                        
                                3年前关闭。
            
                    
嗨,我有下面的代码,由于某种原因出现错误,似乎无法弄清原因。

warning: return makes integer from pointer without a cast


我的代码是:

long convertToInt(char *convert) {
        char *p = convert;
        while(*p){
            if(isdigit(*p)) {
                long val = strtol(p, &p, 10);
                return val;
            } else {
                p++;
            }
        }
    return NULL;
}

最佳答案

NULL是指针,而不是整数。它可以实现为#define,它扩展为0(整数常量)或((void *)0)空指针常量。如果要返回表示“发生错误”的值,则可能要返回一个整数常量。值0和-1是传统的。

更好的是返回一个布尔值以表示成功/失败,然后通过指针参数bool_t convertToInt(const char *s, long *value)返回该值。有关示例,请参见标准库函数strtol

关于c - 将char *转换为int ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36938135/

10-11 23:12
查看更多