c - Need help figuring out infinite loop -
this simplified version of code:
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; } the problem while loop running forever, though i'm expecting stop after final digit 1. , expected output t = 20.
s not incremented if *s digit, consider removing else clause, making code this:
while (*s) {     if (isdigit(*s))         t += *s - '0';      ++s; } 
Comments
Post a Comment