[an error occurred while processing this directive]
Вот мой топорный вариантец(+)...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Peter K. 23 декабря 2002 г. 09:37
В ответ на: Ответ: еще есть atoi, itoa отправлено alexa66 23 декабря 2002 г. 08:13

/* Функция, преобразующая число типа int в ASCII строку */
// Возвращает указатель на
char* q_itoa(WORD NN, char cfield, BYTE col)
{
BYTE ostatok;
WORD chast;
BYTE i;

tmpstring[0] = cfield;
tmpstring[1] = cfield;
tmpstring[2] = cfield;
tmpstring[3] = cfield;
tmpstring[4] = '0';
tmpstring[5] = 0;
i = 4;

while(NN >= 10)
{
chast = NN/10;
ostatok = NN - (chast*10);
NN = chast;
tmpstring[i] = 0x30 + ostatok;
i--;
}
tmpstring[i] = 0x30 + NN;
if(col > 5) return (&tmpstring[i]);
else return (&tmpstring[5] - col);
}


tmpstring[] - буфер с результатом
col - это количество знаков "до запятой", т.е. если col = 3, а число 23, то результат будет "023"
cfield - символ, которым заполняются пустые места, т.е., если cfield = '0', то рез-т будет "023", если col == 32 (пробел), то " 23".

Думаю, можно было и покороче и пологичнее все это обстряпать, да как-будто и это работает.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru