Есть несколько известных приемлимых способа сконвертировать число в строку std::string(или char*).

Способами C

Используя функцию itoa

char *  itoa(int value, char * str, int base );
value - число, которое переводимое в строку
str - буфер, в котором сохранится С-строка с переведенным числом
base - система счисления(обычно - 10).
#include <stdlib.h>
....
int x = 100;
char buffer[20];
itoa(x, buffer, 10);         // или _itoa
std::string s(buffer);

Используя функцию sprintf

Явно записываем в буфер по специальной маске, что ожидаем и указываем подстановки.

char buffer [50];
int a = 100, b = 10;
sprintf (buffer, "%d плюс %d равно %d ", a, b, a+b);

Применимы следующие флаги: %d - для целых чисел %f - для float

Способами C++

Создаем поток, и печатаем в поток число. Далее смотрим содержимое потока в виде std::string.

#include <ostream.h>
....
int number = 897;
ostringstream stream;
stream << number;
string converted = stream.str();

Используя boost::lexical_cast(C++)

try {
  std::string s = boost::lexical_cast<std::string>(i);
} catch(boost::bad_lexical_cast &){
 ...
}