Программа, которая может обрабатывать различные формы ввода (int и str) в C - PullRequest
0 голосов
/ 10 января 2020

Я должен получить 3 целых числа в качестве ввода от пользователя. Но моя программа должна иметь возможность получать этот ввод в виде строки, а также 3 отдельных целых чисел.

Например, она должна иметь возможность работать со всеми этими форматами ввода.

1 2 3

1, 2, 3

"1 2 3"

"1, 2, 3"

Любые идеи, как Я мог бы сделать это?

Может быть, я должен использовать fgets(), затем sscanf() и проверить возвращаемое значение этого и в зависимости от этого делать разные вещи. Но я не смог заставить его работать.

Спасибо!

1 Ответ

0 голосов
/ 10 января 2020

Если вы хотите получить только 3 группы цифр, разделенные любыми не цифрами, вы можете попробовать:

char vals[3][40];
char *bp=input;
for(n=0; n<3; n++) {
    for(dp=vals[n]; *bp && !isdigit(*bp); bp++);
    for( ;isdigit(*bp); dp++, bp++) *dp = *bp;
    *dp='\0';
}

Можно добавить некоторые проверки ....

...