【发布时间】:2019-04-18 03:24:37
【问题描述】:
我一直在查看这段 C 代码,但不确定它到底在做什么。我不明白查找语句的多个 if 语句的使用。
int f(char *s) {
char *p = s;
int c = 1;
while (*p == ’ ’)
++p;
while (*p != ’\0’) {
if ( *p < ’0’ || *p > ’9’ ) {
printf("Error!\n"); return 0;
}
++p; }
for (--p; p >= s; --p) {
if (*p == ’ ’) *p = ’0’;
*p += c;
if (*p > ’9’) {
*p = ’0’; c = 1;
} else
c = 0;
if (c == 0) break;
}
if (c != 0) {
printf("Error!\n");
return 0;
}
return 1; }
【问题讨论】:
-
那不是有效的 C 代码。 wandbox.org/permlink/2flW7TlwG4y6Oynz
-
总体思路是什么?这个密码是从天上掉到你身上的吗?你得到它的地方没有解释一下吗?
-
不如你描述一下代码对我们做了什么。如果你弄错了,人们可能会给予指点。与人们不费吹灰之力地告诉你发生了什么相比,你会学到更多的使用方法。而且,顺便说一句,代码的作用非常简单。
-
用
'替换所有’。 -
如果字符串包含一个整数(带有前导空格),则将该整数加一。成功返回 1,失败返回 0。