проверка целочисленного ввода в C - PullRequest
1 голос
/ 03 апреля 2012

Я хотел бы спросить вас, каков наиболее эффективный способ проверки ввода пользователя в C. Я хочу, чтобы пользователь вводил четырехзначное целое число. Как я могу убедиться, что пользователь ввел ровно 4 цифры и никаких букв?

Ответы [ 3 ]

1 голос
/ 03 апреля 2012

В одну сторону:

1) читается как string или char*

2) проверьте, что каждый символ находится в диапазоне 49-58 ASCII.

Наконец, преобразуйте в int, используя atoi() (или atol () в случае long), если в строке только четыре символа и удовлетворяете (2)

0 голосов
/ 03 апреля 2012

Используйте функцию strtol для преобразования вашей строки в long.strtol может выполнить проверку ошибок, чтобы проверить, действительно ли вы получили long.Затем проверьте, находится ли число от 1000 до 9999 (для положительных 4-значных десятичных целых чисел).

0 голосов
/ 03 апреля 2012

Все входные данные принимаются как строки (консоль).то, что вы можете сделать, это проверить, что длина меньше чем четыре, если это так, выполните цикл и используйте isdigit() для каждого символа, чтобы увидеть, является ли цифра.

Для проверки чисел вы можете сделать что-то вроде:

 int isnumeric(char *str)
 {
     while(*str)
     {
        if(!isdigit(*str))
            return 0;
            str++;
     }
     return 1;
 }
...