c中for循环的条件

时间:2016-06-02 21:25:22

标签: c loops for-loop

我有一个字符数组,我想做一个循环,如果数组的下一个字符是数字,循环跳转到下一个字符,如果没有,我打印最后一个数字。可以/我应该这样做吗?

int h;
char array[20];

for (h=0;isdigit(array[h]);h++)
   h=h+1;
if(!isdigit(array[h]))
printf ("%d",h-1)

到目前为止,我使用for循环的唯一条件是"数字"条件如" h< = 10"。

我正在用C编程。

1 个答案:

答案 0 :(得分:2)

以下是我对您的代码的分析:

int h;
char array[20];

for (h=0;isdigit(array[h]);h++)
   h=h+1;
if(!isdigit(expression[h]))      // "expression" is not declared.
    printf ("%d",h-1)            // Missing Semicolon

至于你可以放在for-loop的中间部分:
任何会评估为真/假的东西 在C中,0与False相同,任何其他数字为True isdigit返回一个表示true / false的数字,因此它可以正常工作。

这就是我认为你的意思:

int h;
char array[20];

for (h=0;isdigit(array[h]);h++) /**/; // While you have digits, go to the next character.

// Now that the loop is over:
printf ("%c",array[h-1]); // Print the previous character