2016-12-09 9 views
0

Я хотел бы преобразовать целое число в строку, как:функция напротив atoi()?

int a = 12345 

кроющие к

char b[6] = "12345" 

в основном противоположна функции atoi, которая преобразует строку в целое число.

+0

sprintf() with '% d'? – bwoebi

+0

'char b [5]' -> 'char b [6]' или больше – BLUEPIXY

+0

'char * t = s + sizeof (s); * - t = 0; do {* - t = (n% 10) + '0'; п/= 10; } while (n); '(добавить тест для негативов), номер строки -' t'. –

ответ

3
#include <stdio.h> 
int sprintf(char *str, const char *format, ...); 

Пример

char str[10]; 
sprintf(str,"%d", 12345); 
+0

Спасибо за подпись, но как вы ее используете ? –

+0

char str [10]; sprintf (str, "% d", 12345); – vonzhou

-2

Используйте itoa(). Это должно сделать трюк (только некоторые компиляторы имеют его)

+2

Нестандартно ... –

+0

@ ringøwhat вы имеете в виду? – Heatblast016

+0

[Это то, что я имею в виду] (http://stackoverflow.com/questions/8257714/how-to-convert-an-int-to-string-in-c) –

2

источник:. Here

обугленного * itoa (INT значение, символ * ул, внутр базы)

Преобразование целого числа в строку (нестандартная функция) Преобразует целочисленное значение в строка с нулевым завершением с использованием указанной базы и сохраняет результат в массиве, заданном параметром str.

Если основание равно 10, а значение отрицательное, в результате строки предшествует со знаком минус (-). С любой другой базой значение всегда считается без знака.

ул должна быть массивом достаточно долго, чтобы содержать любое возможное значение: (SizeOf (INT) * 8 + 1) для поразрядного = 2, то есть 17 байт в 16-битных платформах и 33 в 32-битные платформы.

Но не определен в ANSI-C и не является частью C++

Стандарт-совместимый альтернатива для некоторых случаях может быть Sprintf:

  • Sprintf (ул, "% d" , value) преобразуется в десятичную базу.