Обработка символьного рядка - C (СИ) (154546)

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

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

Проверить, является правильной записью беззнакового целого числа, в системе счисления с основанием 5, введенная с клавиатуры символьная строка (с возможными символами пробела перед числом и после него). Если да, то определить и напечатать десятичное значение этого числа.

Решение задачи: «Обработка символьного рядка»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
int Check(char *s, char **beg, char **end)
{
   for(; *s && *s == ' '; ++s)
      ;
   for(*beg = s; *s && (*s >= '0' && *s <= '4'); ++s)
      ;
   for(*end = s - 1; *s && *s == ' ' ; ++s)
      ;
   return !(*s);
}
 
int Number(char *beg, char *end)
{
   return beg <= end ? (*end - '0') + 5 * Number(beg, end - 1) : 0;
}
 
int main()
{
   char s[1024], *beg, *end;
   int a;
   fgets(s, 1024, stdin);
   s[strlen(s) - 1] = '\0';
   if (Check(s, &beg, &end))
   {
       a = Number(beg, end);
       printf("a = %d\n", a);
   }
   return 0;
}

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


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

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

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