Записать содержимое array[] в переменную char *var - C (СИ)
Формулировка задачи:
Имеется у меня массив char array[8]={1,1,1,1,0,0,0,0} стараюсь записать содержимое array[] в переменную char *var т.е. хочу в конечном итоге, чтобы переменная var была инициализированна значением "11110000", пытался сделать это сдеть с помощью цикла for и функции sprintf() - не вышло, так же пытался сделать при помщи функции конкатенации strcat() - не вышло, может кто подскажет как выполнить данную задачу???
Решение задачи: «Записать содержимое array[] в переменную char *var»
textual
Листинг программы
char array[8] = { 1, 1, 1, 1, 0, 0, 0, 0 };
char* var = (char*)calloc(9, sizeof(char));
int i = 0;
for (; i < 8; var[i] = '0'+array[i++]);
puts(var);
Объяснение кода листинга программы
- Объявляется массив
array[]типаcharс размером 8 элементов и инициализируется значениями 1, 1, 1, 1, 0, 0, 0, 0. - В динамической памяти выделяется участок размером 9 элементов для переменной типа
char*с именемvarс помощью функцииcalloc(). - Инициализируется счётчик
iзначением 0. - Запускается цикл
for, который выполняется до тех пор, пока значение счётчикаiменьше 8. - Значение переменной
array[i]преобразуется в строку и записывается в переменнуюvarс индексомi. - Значение счётчика
iувеличивается на 1 после каждой итерации цикла. - Выводится на экран значение переменной
varс помощью функцииputs().