text: /* ************************************************************************** */
  /*                                                                            */
  /*                                                        :::      ::::::::   */
  /*   ft_check_base.c                                    :+:      :+:    :+:   */
  /*                                                    +:+ +:+         +:+     */
  /*   By: evgenkarlson <RTFM@42.fr>                  +#+  +:+       +#+        */
  /*                                                +#+#+#+#+#+   +#+           */
  /*   Created: 2020/02/14 12:33:14 by evgenkarlson      #+#    #+#             */
  /*   Updated: 2020/09/28 13:01:24 by evgenkarlson     ###   ########.fr       */
  /*                                                                            */
  /* ************************************************************************** */
  
  int		ft_check_base(char *base)		/* Функция проверки массива с нужной на системой счисления на корректность. Она принимает 
  										** адресс массива и возвращает, если все корректно, число отражающее размер  проверяемого
  										** базового типа. Если же массив не пройдет проверку на корректность, то функция вернет '0' */
  {
  	int	i;								/* обьявляем счетчик */
  	int	z;								/* обьявляем счетчик */
  
  	i = 0;								/* инициализируем счетчик нулем чтобы начать с начала массива */
  	if (!base || !base[1])				/* Проверяем наличие в массиве данных. Если массив пуст */
  		return (0);						/* то мы завершаем функцию и возвращаем '0' */
  	while (base[i])						/* Запускаем цикл пройдется по всему массиву символов до тех пор пока мы не дойдетдо конца массива.
  										** Он проверит относится ли каждый элемент массива только к символам цифр или букв алфавита, а так 
  										** же выяснит не повторяется ли символ в какой либо части текущего массива. */
  	{
  		if (!((base[i] >= '0' && base[i] <= '9') || (base[i] >= 'a' \
  				&& base[i] <= 'z') || (base[i] >= 'A' && base[i] <= 'Z'))) /* Провеяем каждый елемент массива, чтобы там были только символы
  										** чисел или букв алфавита */
  			return (0);					/* Если в массиве есть что то не нужное нам, то мы завершаем функцию и возвращаем '0' */
  										/* Теперь проверим повторяется ли текущий символ где ли бо еще в массиве с помощью цикла ниже */
  		z = i + 1;						/* Используем переменную 'z' для хранения числа указывающего на ячейку, которая следует после той
  										** ячейки, на которую указывает число, в переменной 'i' */
  		while (base[z])					/* Запускаем цикл, который проверит все ячеки которые следуют за теми на которые указывает переменная
  										** 'i' и выясним повторяется ли текущий символ в какой либо части текущего массива символов */
  		{
  			if (base[i] >= base[z])		/* Если символ из ячейки, на которую указывает переменная 'i', такой же что и в другой ячейке массива, 
  										** на котрую указывает переменная 'z', или больше по значению */ 
  				return (0);				/* То мы завершаем функцию и возвращаем '0' */
  			z++;						/* Если же похожий или меньший символ не найден, то мы увеличиваем содержимое переменной 'z' для перехода
  										** к проверке след ячейки массива и продолжаем цикл, пробегаясь по остальным ячейкам массива, сравнивая их
  										** с символом из ячейки, на котрую указывает переменная 'i' */
  		}
  		i++;							/* Если мы дошли до сюда, значит текущий символ массива из ячейки на которую указывает переменная 'i'
  										** соответсвует условиям и мы увеличиваем увеличиваем содержимое переменной 'i' для перехода к след ячейке
  										** массива и проверке её содержимого на соответствие нашим условиям */
  	}
  	return (i);							/* Если дошли до сюда, значит массив проверен и соответсвует нашим условиям.
  										** Завершаем функцию и возвращаем размер базового типа, как знак положительного прохождения теста */
  }