подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в int нашел - atoi... а вот обратно не нашел...
>подскажите, как преобразовать тип 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 в строку. Функцию для преобразования строки в
>>int нашел - atoi... а вот обратно не нашел...
>
>Помнится такая ф-ция была в книжке Кернигана и Ритчи. И для перевода
>из строки в дробные числа тоже была. Вообщем, вот пример, который
>я только что написал по памяти:>P.S. Писал сходу, так что возможно, что можно написать и лучше. За
>рута тоже не ругайте :)Спасибо!
P.S. ааа, phpcoder... а я тебя знаю... по жж )
>Спасибо!Да незачто. Было приятно оторваться от шельных скриптов и что-нить написать на Сях :)
>P.S. ааа, phpcoder... а я тебя знаю... по жж )
Я тебя тоже знаю по ЖЖ, но это уже offtopic :-/ (кстати, ты зачем-то удалили свой дневник)
P.S. Если будешь отвечать, то отвечай на slava.semushin / gmail.com =)
>>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>>int нашел - atoi... а вот обратно не нашел...
>
>Помнится такая ф-ция была в книжке Кернигана и Ритчи. И для перевода
>из строки в дробные числа тоже была. Вообщем, вот пример, который
>я только что написал по памяти:Скажите, а чем не угодила замечательная функция sprintf()?
>Скажите, а чем не угодила замечательная функция sprintf()?Ууупс! :) Тем, что я о ней совсем забыл :D А вообще, тогда уж лучше snprintf() использовать...
>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>int нашел - atoi... а вот обратно не нашел...
cub@tux ~ % man atoi
.......SEE ALSO
atof(3), strtod(3), strtol(3), strtoul(3)
.......
Чем strto*** не устраивает?...
>подскажите, как преобразовать тип int в строку. Функцию для преобразования строки в
>int нашел - atoi... а вот обратно не нашел...man itoa
>man itoa$ man itoa
No manual entry for itoa
$ uname
Linux
$Так что все же лучше s(n)printf, он есть везде :)