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

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

Отправлено ligurio , 05-Янв-07 15:29 
подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в int нашел - atoi... а вот обратно не нашел...

Содержание

Сообщения в этом обсуждении
"преобразование int в строку"
Отправлено phpcoder , 05-Янв-07 16:11 
>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>int нашел - atoi... а вот обратно не нашел...

Помнится такая ф-ция была в книжке Кернигана и Ритчи. И для перевода из строки в дробные числа тоже была. Вообщем, вот пример, который я только что написал по памяти:

[root@xxx ~]# gcc -W -Wall stoi.c -o stoi
[root@xxx ~]# ./stoi
Usage: ./stoi number
[root@xxx ~]# ./stoi 123
Your number is 123
[root@xxx ~]# ./stoi 150000
Your number is 150000

Вот исходник:

[root@xxx ~]# cat stoi.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int stoi(char *str) {
int i;
int number = 0;
int st = 1;

for (i = strlen(str)-1; i >= 0; i--) {
     number = number + ((str[i] - '0') * st);
     st *= 10;
}

return number;
}

int main(int argc, char **argv) {

if (argc != 2) {
     fprintf(stderr, "Usage: %s number\n", argv[0]);
     exit(EXIT_FAILURE);
}

printf("Your number is %d\n", stoi(argv[1]));

return EXIT_SUCCESS;
}

P.S. Писал сходу, так что возможно, что можно написать и лучше. За рута тоже не ругайте :)


"преобразование int в строку"
Отправлено ligurio , 05-Янв-07 16:17 
>>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>>int нашел - atoi... а вот обратно не нашел...
>
>Помнится такая ф-ция была в книжке Кернигана и Ритчи. И для перевода
>из строки в дробные числа тоже была. Вообщем, вот пример, который
>я только что написал по памяти:

>P.S. Писал сходу, так что возможно, что можно написать и лучше. За
>рута тоже не ругайте :)

Спасибо!
P.S. ааа, phpcoder... а я тебя знаю... по жж )


"преобразование int в строку"
Отправлено phpcoder , 05-Янв-07 16:23 
>Спасибо!

Да незачто. Было приятно оторваться от шельных скриптов и что-нить написать на Сях :)

>P.S. ааа, phpcoder... а я тебя знаю... по жж )

Я тебя тоже знаю по ЖЖ, но это уже offtopic :-/ (кстати, ты зачем-то удалили свой дневник)

P.S. Если будешь отвечать, то отвечай на slava.semushin / gmail.com =)



"преобразование int в строку"
Отправлено DeadLoco , 05-Янв-07 17:04 
>>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>>int нашел - atoi... а вот обратно не нашел...
>
>Помнится такая ф-ция была в книжке Кернигана и Ритчи. И для перевода
>из строки в дробные числа тоже была. Вообщем, вот пример, который
>я только что написал по памяти:

Скажите, а чем не угодила замечательная функция sprintf()?


"преобразование int в строку"
Отправлено phpcoder , 05-Янв-07 17:09 
>Скажите, а чем не угодила замечательная функция sprintf()?

Ууупс! :) Тем, что я о ней совсем забыл :D А вообще, тогда уж лучше snprintf() использовать...



"преобразование int в строку"
Отправлено Cub , 06-Янв-07 01:45 
>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>int нашел - atoi... а вот обратно не нашел...


cub@tux ~ % man atoi
.......

SEE ALSO
       atof(3), strtod(3), strtol(3), strtoul(3)
.......


Чем strto*** не устраивает?...


"преобразование int в строку"
Отправлено sandy , 14-Янв-07 14:43 
>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>int нашел - atoi... а вот обратно не нашел...

man itoa


"преобразование int в строку"
Отправлено Michelnok , 14-Янв-07 16:50 
>man itoa

$ man itoa
No manual entry for itoa
$ uname
Linux
$

Так что все же лучше s(n)printf, он есть везде :)