jon*_*hua 3 c infinite-loop while-loop
这是我的代码的简化版本:
void calc(char *s)
{
int t = 0;
while (*s)
{
if (isdigit(*s))
t += *s - '0';
else
++s;
}
printf("t = %d\n", t);
}
int main(int argc, char* argv[])
{
calc("8+9-10+11");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是while循环运行永远,虽然我希望它在最后一位数后停止1
.而我的预期输出是t = 20
.
Has*_*kun 12
s
如果*s
是数字,则不会递增,请考虑删除else子句,使代码成为:
while (*s)
{
if (isdigit(*s))
t += *s - '0';
++s;
}
Run Code Online (Sandbox Code Playgroud)