Преобразование int в char - C (СИ)

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

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

Всем привет! Мне нужно преобразовать число в строку. Использую sprintf() всё работает, НО переменная получает не значение, а ссылку на это значение, а т.к. sprintf() у меня в цикле, то в итоге в массиве все элементы имеют одинаковое значение (последнее преобразованное число). Уже целый день вожусь с этой проблемой. Что нужно сделать, чтобы переменная получала не ссылку, а значение по ссылке?
char *values[50];
char buffer[1];
int a = 5, b = 10;
 
sprintf(buffer,"%d",a);
values[0] = buffer;
 
sprintf(buffer,"%d",b);
values[1] = buffer;
 
//и тот и другой элемент массива имеют одинаковое значение - 10
Сильно не бейте, я новичок в Си, да и нужен он мне только для написания программы к сессии, так что вдаваться во все подробности нет никакого смысла и желания.

Решение задачи: «Преобразование int в char»

textual
Листинг программы
/* 50 элементов по 15+1 символов. Хотя на один элемент в крайнем случае
 * будет достаточно и 11 символов + завершающий ноль. Но для круглого
 * числа пусть будет 16 */
char values[50][16];
...
int a, b, c;
...
sprintf (buf[0], "%d", a);
sprintf (buf[1], "%d", b);
sprintf (buf[2], "%d", c);
...

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

  1. В коде определен массив values размером 50х16, который будет использоваться для хранения значений.
  2. Далее, определены три переменные типа int - a, b и c.
  3. С помощью функции sprintf значения переменных a, b и c преобразуются в строки и записываются в соответствующие элементы массива buf. При этом, каждый элемент массива buf представляет собой строку, которая может содержать до 15 символов, включая завершающий ноль.
  4. Таким образом, в результате выполнения кода в массиве buf будут храниться строковые представления переменных a, b и c.

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


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

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

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