LINUX.ORG.RU
в чистом C : sprintf (а лучше snprintf)

MKuznetsov ★★★★★
()
ещё есть не совсем стандартная, но достаточно распространённая функция asprintf(), которая сама выделяет необходимую память под стринг.
bbk123 ★★★★★
()
если нужен именно стринг, а не массив символов не известного размера, то:

std::string NumberToString(int value ){
std::ostringstream ostrm;
ostrm << value;
return ostrm.str();
}
ale ★★
()
Ответ на: комментарий от ale
Массив символов, оканчивающийся '\0' - это и есть стринг. Размер стринга возвращается всеми функциями семейcтва sprintf(). И вопрос всё таки касался C, а не C++.
bbk123 ★★★★★
()
Ответ на: комментарий от bbk123
>Размер стринга возвращается всеми функциями семейcтва sprintf()

но до этого необходимо было переслать sizeof(buf), а сколько нужно 30 символов или 1 или больше (ну мало ли =) )?

не может ли здесь быть потенциальное переполнение буфера?

ale ★★
()
Ответ на: комментарий от ale
snprintf() в качестве одного из параметров принимает размер буфера.
asprintf() сама выделяет столько памяти, сколько нужно.
Откуда взяться переполнению?
bbk123 ★★★★★
()
Ответ на: комментарий от ale
> std::string NumberToString(int value ){
> std::ostringstream ostrm;
> ostrm << value;
> return ostrm.str();
> }

немного офтопа, но все написано до нас - boost::lexical_cast
aton
()
а есть какая-нить функция перевода числа в строку, например, 3578 -> "three thousand five hundred and seventy eight"? я написал свою, но она не универсальная:-(
record ★★★★★
()
Ответ на: комментарий от bbk123
>Есть программа:

1.Cпасибо.
2.Скомпилировал.
3.Работает.
(Правда пропускает AND'ы,надо так: 345 = "three hundred AND forty five".
1001 = "one thousand AND one")
4.Попробую подправить
5.goto 1.
record ★★★★★
()
Ответ на: комментарий от bbk123
В классическлм британском английском употребление and обязательно перед десятками, в американском - факультативно.
record ★★★★★
()
Ответ на: комментарий от record
>5.goto 1.
Извините, что вмешиваюсь, но goto, видимо, не совсем то, что имелось ввиду? Может #include ? :) А то так до скончания веков компилить придётся. :)
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.