URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8109
[ Назад ]

Исходное сообщение
"преобразование числа в строку"

Отправлено m_kostik , 24-Фев-09 21:46 
Прошу простить за наивность вопроса, но все же: как преобразовать число в строку? Функции преобразования строки в число типа atoi() нашел, а вот обратный процесс не ясен. Можно, конечно, при помощи sprintf(). А как-нибудь по-другому можно?

Содержание

Сообщения в этом обсуждении
"преобразование числа в строку"
Отправлено vic , 24-Фев-09 21:57 
>Прошу простить за наивность вопроса, но все же: как преобразовать число в
>строку? Функции преобразования строки в число типа atoi() нашел, а вот
>обратный процесс не ясен. Можно, конечно, при помощи sprintf(). А как-нибудь
>по-другому можно?

for C:
а чем sprintf() не устраивает?
он дает возможность получить число в нужном формате в указанный буфер. Что еще надо-то?

for C++:
строковые потоки или boost:format или boost::lexical_cast и т.д.

вообще обычно для больших проектов юзают различные либы аля glib, qt и т.д. где есть доп. функции.


"преобразование числа в строку"
Отправлено allez , 25-Фев-09 07:09 
>Прошу простить за наивность вопроса, но все же: как преобразовать число в
>строку? Функции преобразования строки в число типа atoi() нашел, а вот
>обратный процесс не ясен. Можно, конечно, при помощи sprintf(). А как-нибудь
>по-другому можно?

$ man -k "number.*to.*string"
ecvt (3)             - convert a floating-point number to a string
ecvt (3p)            - convert a floating-point number to a string (LEGACY)
ecvt_r (3)           - convert a floating-point number to a string
fcvt (3)             - convert a floating-point number to a string
fcvt_r (3)           - convert a floating-point number to a string
gcvt (3)             - convert a floating-point number to a string
gcvt (3p)            - convert a floating-point number to a string (LEGACY)
qecvt (3)            - convert a floating-point number to a string
qecvt_r (3)          - convert a floating-point number to a string
qfcvt (3)            - convert a floating-point number to a string
qfcvt_r (3)          - convert a floating-point number to a string
qgcvt (3)            - convert a floating-point number to a string

$ man ecvt
ECVT(3)                                         Linux Programmer's Manual                                        ECVT(3)

NAME
       ecvt, fcvt - convert a floating-point number to a string
. . .
. . .
SEE ALSO
       ecvt_r(3), gcvt(3), qecvt(3), setlocale(3), sprintf(3)


Как видим, в разделе "SEE ALSO" присутствует ссылка на sprintf, так что его, похоже, также можно
считать кошерным и православным. :-)

"преобразование числа в строку"
Отправлено const86 , 25-Фев-09 10:24 
> Как видим, в разделе "SEE ALSO" присутствует ссылка на sprintf, так что его, похоже, также можно считать кошерным и православным. :-)

Как раз sprintf, а точнее snprintf, и есть кошерная и православная функция, а *cvt были obsolete, а теперь вообще убраны из стандарта.

Кстати, atoi - бяка, ибо ошибки не вылавливает. Строки в числа можно преобразовывать с помощью strtod, stroul итп, sscanf или тот же boost::lexical_cast.


"преобразование числа в строку"
Отправлено allez , 25-Фев-09 16:13 
>Как раз sprintf, а точнее snprintf, и есть кошерная и православная функция,
>а *cvt были obsolete, а теперь вообще убраны из стандарта.

Да и ради бога, я на С не пишу и вообще программистом себя давно уже не считаю. :-)
В моем сообщении всего лишь приведен пример того, как можно найти
нужную информацию даже без доступа к интернету.