Перевод из 16 в 10 систему счисления (ограничить ввод данных) - C (СИ)

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

написал код, не могу понять какие условия вписать, чтобы нельзя было вводить ничего кроме букв и цифр
#include "stdio.h"
#include "math.h"
#include "windows.h"
#include "string.h"
 
 
int hexdec(char st[10])
{
  int i, s, k, p;
        s = 0;
        p = strlen(st)-1;
            for (i = 0; p>=0; i++, p--)
  {
    k=toupper(st[i]);
            s+=((k>='A')?10+k-'A':k-'0')*pow(16,p);
  }
  return s;
}
 
int main()
{
  char st[10];
        scanf ("%s",  &st) ;
            printf ("Result: %d\n",hexdec(st));
            system("pause");
 
}
мысль была, что нельзя ничего вводить кроме с 48 до 57 символа в аски и так же с буквами от а до f, как реализовать совсем не понимаю

Код к задаче: «Перевод из 16 в 10 систему счисления (ограничить ввод данных) - C (СИ)»

textual
#include "stdio.h"
#include "math.h"
#include "windows.h"
#include "string.h"
 
 
int hexdec(char st[10])
{
    int i, s, k, p;
    for (int i = 0; i < 10; ++i)
    if(('a'>= st[i] && st[i] <= 'f') ||('A'>= st[i] && st[i] <= 'F'))
        if('0'>=st[i] && st[i]<='9')
            s=0;
    p = strlen(st)-1;
 
    for (i = 0; p>=0; i++, p--){
        k=toupper(st[i]);
        s+=((k>='A')?10+k-'A':k-'0')*pow(16.0,p);
    }
    return s;
}
 
int main()
{
    char st[10];
    scanf ("%s",  &st) ;
    printf ("Result: %d\n",hexdec(st));
    system("pause");
 
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

12   голосов, оценка 4.083 из 5


СДЕЛАЙТЕ РЕПОСТ