Простое преобразование int в char [] - PullRequest
4 голосов
/ 19 февраля 2011

У меня простой вопрос

Как просто преобразовать целое число (получая значения 0-8) в символ, например, символ [2] в C?

Спасибо

Ответы [ 5 ]

14 голосов
/ 19 февраля 2011
main()
{
  int i = 247593;
  char str[10];

  sprintf(str, "%d", i);
// Now str contains the integer as characters
}

Надеюсь, это будет полезно для вас.

2 голосов
/ 11 сентября 2016
#include<stdio.h> 
#include<stdlib.h>
#include<string.h>
void main()
{
int a = 543210 ;
char arr[10] ="" ;

itoa(a,arr,10) ;   // itoa() is a function of stdlib.h file that convert integer 
                   // int to array itoa( integer, targated array, base u want to             
                   //convert like decimal have 10 

for( int i= 0 ; i < strlen(arr); i++)   //  strlen()   function in string file thar return string length
  printf("%c",arr[i]);

}
1 голос
/ 19 февраля 2011

Используйте это.Остерегайтесь i больше 9, так как для этого потребуется массив символов с более чем 2 элементами, чтобы избежать переполнения буфера.

char c[2];
int i=1;
sprintf(c, "%d", i);
0 голосов
/ 19 февраля 2011

Если вы хотите преобразовать int, который находится в диапазоне 0-9, в символ, вы обычно можете написать что-то вроде этого:

int x;
char c = '0' + x;

Теперь, если вы хотите строку символов, просто добавьтезавершающий символ '\ 0':

char s[] = {'0' + x, '\0'};

Обратите внимание, что:

  1. Вы должны быть уверены, что int находится в диапазоне 0-9, в противном случае произойдет сбой,
  2. Работает только в том случае, если коды символов для цифр являются последовательными.Это верно в подавляющем большинстве систем, основанных на ASCII, но это не обязательно так во всех случаях.
0 голосов
/ 19 февраля 2011

Вы не можете по-настоящему сделать это в «стандартном» C, потому что размер int и char не фиксирован.Допустим, вы используете компилятор под Windows или Linux на компьютере с Intel ...

int i = 5;
char a = ((char*)&i)[0];
char b = ((char*)&i)[1];

Помните об устойчивости вашего компьютера!И эти int "обычно" 32 бита, так что 4 символа!

Но вы, вероятно, имели в виду "я хочу записать число", поэтому проигнорируйте этот ответ: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...