Числа в массиве перевести в строку - C (СИ)

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

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

Дан массив чисел (1,0,1,1,0,1,0,1) из него надо получить строку. Смысл всей задумки: Из функции, которая переводит десятичное число в двоичное (двоичное число сохраняется в массиве) массив чисел перевести в массив со строкой и получившийся результ передать в программу. программа по переводу дес в двоич уже есть Если есть другие способы то и они приветствуются.

Решение задачи: «Числа в массиве перевести в строку»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main() {
  unsigned a[] = {1,0,0,1,0,0,0,1,0,1};
  unsigned cnt = sizeof(a)/sizeof(*a), i;
  char *string = calloc(sizeof(char), cnt + 1);
  if (string) {
    for (i = 0; i < cnt; ++i) {
      string[i] = '0' + a[i];
    }
    puts(string);
    free(string);
  }
}

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

В этом коде:

  1. Объявлен массив a типа unsigned с десятью элементами, инициализированными значениями 1, 0, 0, 1, 0, 0, 0, 1, 0, 1.
  2. Вычислено значение переменной cnt как результата деления размера массива a на размер одного элемента *a. Значение cnt представляет собой количество элементов в массиве a.
  3. Выделена память под строку string с помощью функции calloc. Память выделена для cnt + 1 символов, включая завершающий нулевой символ.
  4. Если память успешно выделена, то в цикле for производится перевод чисел в массиве a в соответствующие символы в строке string. В каждой итерации к символу '0' добавляется значение соответствующего элемента массива a.
  5. Полученная строка выводится на экран с помощью функции puts.
  6. Выделенная память освобождается с помощью функции free.
  7. Если память под string не выделена, то выводится сообщение об ошибке и программа завершается.

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


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

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

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