В C++ есть хорошая функция atoi для преобразования строки в целое число, а функция для обратного преобразования (из числа в строку) почему-то отсутствует.
Вот лекарство от сего недоразумения:
char* itoa (int n){
int i=0,j;
char* s;
char* u;
s= (char*) malloc(17);
u= (char*) malloc(17);
do{
s[i++]=(char)( n%10+48 );
n-=n%10;
}
while((n/=10)>0);
for (j=0;j<i;j++)
u[i-1-j]=s[j];
u[j]='\0';
return u;
}
Может, я чего-то не понимаю, но кто будет вызывать free для выделенной malloc памяти? А в случае с char* s, как вообще это сделать вне функции? Без дополнительных средств, вроде как меморилик выходит
Можно передавать в функцию указатель на char для записи результата, как и принято в C. Тогда и освобождать его можно будет спокойно за пределами функции.
Прошу прощения, а sprintf () религия не позволяет использовать?
Если подключить к проекту stdlib по каким-то причинам нельзя, то нет, не позволяет
Вы долбаёбы, есть там такая функция!!!!!!!!111111111111111
ага, а К.О. говорит, что она не входит в текущий стандарт C++, и скорее всего не входит в POSIX-2001.1.