MasterGerold
@MasterGerold

Преобразование инта в строку?

Доброго времени суток! Есть функция которая выводит int на стандартный вывод:
void	ft_putchar(char c)
{
	write(1, &c, 1);
}

void	ft_putnbr(int n)
{
	if (n < 0)
	{
		write(1, "-", 1);
		ft_putnbr(-n);
	}
	else if (n > 9)
	{
		ft_putnbr(n / 10);
		ft_putnbr(n % 10);
	}
	else
		ft_putchar(n + '0');
}

Как её можно написать без рекурсии? Встроеные функции не предлагать. Задача разобраться самому как это делать.
  • Вопрос задан
  • 6188 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
void wrInt(int val) {
  int l = 1, v = val;
  if (v < 0) {
    write(1, "-", 1);
    v = -v;
  }
  while ((v = v/10) > 0)
    l *= 10;
  while (l > 0) {
    v = val % l;
    ft_putchar(v + '0');
    val -= v*10;
    l /= 10;
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Абстрактно
if (!v)
     result = '0';
  else{
     while (v){
       ...
        v =  (v - (v % 10)) / 10; 
     }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы