Я пытаюсь читать цифры от неразделенного ввода символов в массив int. Пример ввода и вывода:Чтение цифр из незакрашенных символов в массив int в C
Input: 12a34b56 C7d8E9
Output: [1,2,3,4,5,6,7,8,9]
Вот моя попытка:
int check_digit (char c) {
if ((c>='0') && (c<='9')) return 1;
return 0;
}
int main(int argc, char const *argv[]) {
int numArray[1000], tempChar, c = 0;
tempChar = getchar();
while (tempChar != EOF) {
if (check_digit(tempChar)) {
numArray[c] = tempChar - '0';
c += 1;
}
tempChar = getchar();
}
printf("[");
for (int i = 0; i < c-2; i++) {
printf("%d,", numArray[c]);
}
printf("%d]\n", numArray[c-1]);
return 0;
}
Это не работает должным образом. Он останавливается после прочтения одного символа.
Пример ввод и вывод:
Input: 1a3b5c7d9
Output: [0,0,0,9]
Desired output: [1,3,5,7,9]
Как насчет использования ['isdigit()'] (http://linux.die.net/man/3/isdigit)? –
У меня такая же проблема. – user6005857
Подождите .... 'i