Проверка корректности ввода числа в шестнадцатеричной системе счисления - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Мне нужно проверить правильность введенного числа в шестнадцатеричной системе счисления. Т.е. программа должна выдавать ошибку, если мы введем, допустим, символы "vtyu8h" если я ввожу просто '1' или 'A', то программа работает верно, а если '48', например, то нет подскажите, что исправить
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i, k, f=1;
    char c[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'};
    char d[100];
    printf("Введите число\n");
    gets(d);

    for (i=0; i<strlen(d) - 1; i++)
        for (k=0; k<=11; k++)
            if (d[i]==c[k])
            {
               f++;
            }
 
    if (f==i)
    printf("верно\n");
    else
    printf("ошибка\n");
    return 0;
}

Решение задачи: «Проверка корректности ввода числа в шестнадцатеричной системе счисления»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <windows.h>
 
int main()
{
    char d[100];
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Введите число\n");
    gets(d);
 
    if (*d && strspn(d,"0123456789ABCDEF")==strlen(d))
      printf("верно\n");
    else
      printf("ошибка\n");
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с консолью, строками и числами
  2. Объявление переменной типа char с именем d и размером 100, которая будет использоваться для ввода числа
  3. Установка кодировки консоли на 1251 с помощью функции SetConsoleCP
  4. Установка кодировки вывода консоли на 1251 с помощью функции SetConsoleOutputCP
  5. Вывод сообщения с просьбой ввести число
  6. Ввод числа с помощью функции gets(d)
  7. Проверка корректности введенного числа с помощью условного оператора if
  8. Проверка условия: если введенное число не пустое и состоит только из цифр и букв от A до F, то выводится сообщение верно
  9. В противном случае выводится сообщение ошибка
  10. Возврат значения 0, что означает успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы