我有一个字符数组,我想做一个循环,如果数组的下一个字符是数字,循环跳转到下一个字符,如果没有,我打印最后一个数字。可以/我应该这样做吗?
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编程。
答案 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