很难在C中找出一个函数

时间:2017-11-16 04:29:00

标签: c unix

我很难通过这个功能来弄清楚它到底在做什么。

int f2(char *s) {
  char *p;
  for (p = s; *p != ’\0’; p++)
  ;
    for (--p; p >= s && (*p < ’0’ || *p > ’9’); p--)
  ;
      if (p < s)
        return 1;
      while (p >= s && *p >= ’0’ && *p <= ’9’) {
        if (*p == ’9’)
          *p = ’0’;
        else {
          (*p)++;
          return 0;
        }
      p--;
      }
    if (p >= s && *p == ’ ’) {
      *p = ’1’;
      return 0;
    }
  return 1;
}

我已尝试使用GDB调试器来完成它,但无济于事。我认为我目前最大的问题是不确定用什么样的输入来测试它。

1 个答案:

答案 0 :(得分:1)

如果您查看代码,可以看到它正在针对'0''9'' '进行比较。因此,对于“用什么类型的输入进行测试”,尝试将它们输入不同数字的字符串,有时在它们之间有空格,有时则没有。也许还可以尝试将一封信放在一起。

"120973628029"
"9375906 72010"
"0826"
"40726a591"
等等。