如何在C中提取子字符串

时间:2012-12-01 21:56:51

标签: c file substring

我正在从文件中读取数据,我只需要从下面的数据中提取整数。我该如何完成它?感谢。

我的输入将是field6,我需要删除这些字符“];”并将其存储在整数变量中。

我的代码: -

field6 = strtok(NULL," ");
if (isdigit(field6))
{
   weight = atoi (field6);
   printf("%d\n",weight);
}

输入:

43];
2];
4];
16];
25];

输出:

43
2
4
16
25

2 个答案:

答案 0 :(得分:0)

尝试

field6 = strtok(NULL,"\n");
weight = atoi (field6);
printf("%d\n",weight);

这是一种罕见的情况,其中atoi完全符合您的需要。

未检测到的错误情况是“];”这将被解释为零。

答案 1 :(得分:-1)

没有sscanf然后:

#include <stdio.h>

int main(int argc, char** argv)
{
  const char *test = "123];";

  int i = 0;

  const char *p = test;
  while (*p && isdigit(*p))
  {
    if (p != test) i *= 10;
    i += *p - '0';
    ++p;
  }

  if (*p != ']')
  {
    // we have an error!
    return 1;
  }

  printf("%i\n", i);
}