Вопросик
Как в С (не С++) преобразовать число в строку и наоборот?
Строку в число: atof(), atoi(), atol(), atoll() - в параметре строка, возвращается соответствующее число. Разница в типе возвращаемого значения: double, int, long int и long long int соответственно.
Для функций возвращающих целое значение можно указать строку содержащую точку/пробел и другие символы разделения. В этом случае будут обработаны только первые символы до разделителя, остальные отбрасываются.
Но вот зачем делать наоборот? Для вывода на экран числа - есть модификаторы формата функции printf(), а в самой программе вроде как нет смысла хранить число в виде строки.
Как в С (не С++) преобразовать число в строку и наоборот?
Число в строку:
#include <stdio.h>
#define BUF_SIZE 100
char txt[ BUF_SIZE ];
int digit = 0;
/*
Before:
txt = "zdflbhjzldorutp0q43ub[paeutg"; МУСОР :)
*/
digit = 5;
sprintf( txt, "Some text + %d", digit );
/*
After:
txt = "Some text + 5";
*/
ЗЫ. !!!!!
Если размер массива txt будет меньше строки,
которую туда хочешь запихнуть, то прога будет
глючить (переполнение буфера).
unsigned int hstr_i(char *cptr)
{
unsigned int i, j = 0;
while (cptr && *cptr && isxdigit(*cptr))
{
i = *cptr++ - '0';
if (9 < i)
i -= 7;
j <<= 4;
j |= (i & 0x0f);
}
return(j);
}
А вообще зайди на http://c.snippets.org/ и скачай архив http://c.snippets.org/code/temp/snip-c.zip
Там куча готовых примеров.