алгоритм перевода числа в строку
От: Arisu  
Дата: 17.07.07 14:57
Оценка:
Как происходит сабж?? мне нужно написать свою функцию которая бы переводила число в C строку, но я пошарил по поисковикам и книжкам всяким, но ничё конкретно не нашел. Может кто подскажет как это происходит?? мне хотябы просто в теории ) остальное я сам додумаю
Re: алгоритм перевода числа в строку
От: Аноним  
Дата: 17.07.07 15:13
Оценка:
Здравствуйте, Arisu, Вы писали:

A>Как происходит сабж?? мне нужно написать свою функцию которая бы переводила число в C строку, но я пошарил по поисковикам и книжкам всяким, но ничё конкретно не нашел. Может кто подскажет как это происходит?? мне хотябы просто в теории ) остальное я сам додумаю


и я пошарил и сразу нашёл простейшую реализацию
Re: алгоритм перевода числа в строку
От: korzh.pavel Россия  
Дата: 17.07.07 15:13
Оценка:
Здравствуйте, Arisu, Вы писали:

A>Как происходит сабж?? мне нужно написать свою функцию которая бы переводила число в C строку, но я пошарил по поисковикам и книжкам всяким, но ничё конкретно не нашел. Может кто подскажет как это происходит?? мне хотябы просто в теории ) остальное я сам додумаю


как то так
Re[2]: алгоритм перевода числа в строку
От: Arisu  
Дата: 17.07.07 15:14
Оценка:
А>и я пошарил и сразу нашёл простейшую реализацию
ух )) ну в википедии я не догадался поискать
Re[2]: алгоритм перевода числа в строку
От: Сергей Мухин Россия  
Дата: 17.07.07 17:59
Оценка: 1 (1)
Здравствуйте, korzh.pavel, Вы писали:

KP>Здравствуйте, Arisu, Вы писали:


A>>Как происходит сабж?? мне нужно написать свою функцию которая бы переводила число в C строку, но я пошарил по поисковикам и книжкам всяким, но ничё конкретно не нашел. Может кто подскажет как это происходит?? мне хотябы просто в теории ) остальное я сам додумаю


KP>как то так


ужасная ф-ия! статический буфер!

т.е.

char * s1 = itoa(1,10);
char * s2 = itoa(2,10);

и s1 и s2 будет указывать на "2" !!!
---
С уважением,
Сергей Мухин
Re[3]: алгоритм перевода числа в строку
От: Risk Server  
Дата: 17.07.07 18:32
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, korzh.pavel, Вы писали:


KP>>Здравствуйте, Arisu, Вы писали:


A>>>Как происходит сабж?? мне нужно написать свою функцию которая бы переводила число в C строку, но я пошарил по поисковикам и книжкам всяким, но ничё конкретно не нашел. Может кто подскажет как это происходит?? мне хотябы просто в теории ) остальное я сам додумаю


KP>>как то так


СМ>ужасная ф-ия! статический буфер!


СМ>т.е.


СМ>char * s1 = itoa(1,10);

СМ>char * s2 = itoa(2,10);

СМ>и s1 и s2 будет указывать на "2" !!!


А ведь это из Соляриса! Страшно даже подумать, что будет, если попросить эту функцию перевести число в строку в двадцатисемиричной системе счисления. Ну или в одноричной
Re: алгоритм перевода числа в строку
От: Sni4ok  
Дата: 17.07.07 19:42
Оценка:
смотри исходники stl'а класса stringstream,
хотя мне кажется он через какой-нить sprintf организован, так что смотри исходники его)
Re: алгоритм перевода числа в строку
От: Germes Украина  
Дата: 18.07.07 07:22
Оценка:
я всегда использую

    template <typename T>
    std::string to_string(const T& val)
    {
        std::ostringstream out;
        out<<val;
        return out.str();
    }
С уважением Germes!
Re[2]: алгоритм перевода числа в строку
От: Аноним  
Дата: 18.07.07 12:17
Оценка:
Здравствуйте, Germes, Вы писали:

G>я всегда использую


G>
G>    template <typename T>
G>    std::string to_string(const T& val)
G>    {
G>        std::ostringstream out;
G>        out<<val;
G>        return out.str();
G>    }
G>


Неплохой алгоритм перевода числа в строку

В VS2005 std::ostringstream берёт настройки вывода (символ-разделитель,
кол-во цифр в группе и т.п.) из юзерской локали, что не всегда надо,
поэтому при перводе числа я инициализирую std::ostringstream 'классической'
сишной локалью: разделитель — точка, цифры без групп:

    template <typename T>
    std::string to_string(const T& val)
    {
        std::ostringstream out;
        out.imbue(std::locale::classic());

        out<<val;
        return out.str();
    }
Re[3]: алгоритм перевода числа в строку
От: Zigmar Израиль  
Дата: 18.07.07 12:48
Оценка:
Здравствуйте, Аноним, Вы писали:
А>В VS2005 std::ostringstream берёт настройки вывода (символ-разделитель,
А>кол-во цифр в группе и т.п.) из юзерской локали, что не всегда надо,
А>поэтому при перводе числа я инициализирую std::ostringstream 'классической'
А>сишной локалью: разделитель — точка, цифры без групп:

А>
А>    template <typename T>
А>    std::string to_string(const T& val)
А>    {
А>        std::ostringstream out;
А>        out.imbue(std::locale::classic());

А>        out<<val;
А>        return out.str();
А>    }
А>

Ага, а лучше воспользоваться уже-почти-стандартным boost::lexical_cast
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.