c - 如何从字符串中提取负数

标签 c

我需要帮助从字符中提取数字。 可以说我有:

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 前面的负数?

最佳答案

您应该更改条件以适应负号,如下所示:

if ((p[0] == '-' && isdigit(p[1]))|| isdigit(p[0])) ...

关于c - 如何从字符串中提取负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946093/

相关文章:

c - 等待 execlp

c - 我将如何使用数组来打印图像?

c - GStreamer GstVideoTestSrcPattern 枚举 - 它在哪里?

C - 函数返回指向函数的指针

c++ - 固定大小的浮点类型

python - 如何将c、c++和python代码编译为 “Released/Final”版本?

c - 为什么这段代码在每个循环中都重写 char 数组的元素?

c++ - objcopy 将目录路径名附加到符号名

objective-c - 如何打包 C 库以便在 Cocoa 项目中使用?

mysql - C程序: Segmentation fault when selecting from MySQL with field that contains NULL