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