我需要帮助从char中提取数字。 让我们说:
char str = " ( 1 22 -4)";
我需要提取每个整数并调用另一种方法。
while (*p) {
if (isdigit(*p)) {
int val = strtol(p, &p, 10);
on_int(val);
} else {
p++;
}
}
我已经成功提取了整数,但我无法弄清楚如何提取负数。
使用这段代码,我已经提取了1,22和4.如何获得4的负面影响?
答案 0 :(得分:2)
您应该更改条件以适应减号,如下所示:
if ((p[0] == '-' && isdigit(p[1]))|| isdigit(p[0])) ...
答案 1 :(得分:0)
while (*p) {
if (isdigit(*p) || ( (*p == '-' || *p == '+') && isdigit(*(p+1)) )) {
int val = strtol(p, &p, 10);
on_int(val);
} else {
p++;
}
}