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;
}
问题是while循环运行永远,虽然我希望它在最后一位数后停止1.而我的预期输出是t = 20.
Has*_*kun 12
s如果*s是数字,则不会递增,请考虑删除else子句,使代码成为:
while (*s)
{
    if (isdigit(*s))
        t += *s - '0';
    ++s;
}