我很难通过这个功能来弄清楚它到底在做什么。
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调试器来完成它,但无济于事。我认为我目前最大的问题是不确定用什么样的输入来测试它。
答案 0 :(得分:1)
如果您查看代码,可以看到它正在针对'0'
,'9'
和' '
进行比较。因此,对于“用什么类型的输入进行测试”,尝试将它们输入不同数字的字符串,有时在它们之间有空格,有时则没有。也许还可以尝试将一封信放在一起。
"120973628029"
"9375906 72010"
"0826"
"40726a591"
等等。