简单的int to char []转换

时间:2011-02-19 09:50:28

标签: c character-encoding

我有一个简单的问题

如何简单地将整数(获取值0-8)转换为char,例如C中的char [2]

由于

5 个答案:

答案 0 :(得分:13)

main()
{
  int i = 247593;
  char str[10];

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

希望它对你有所帮助。

答案 1 :(得分:2)

#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]);

}

答案 2 :(得分:1)

使用它。请注意i大于9,因为这些将需要一个包含2个以上元素的char数组,以避免缓冲区溢出。

char c[2];
int i=1;
sprintf(c, "%d", i);

答案 3 :(得分:0)

你无法在“标准”C中真正做到这一点,因为int和char的大小并不固定。假设您在英特尔PC上使用Windows或Linux下的编译器......

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

记住机器的字节顺序!那个int是“通常”32位,所以4个字符!

但你可能的意思是“我想把字符串化”,所以忽略这个回答: - )

答案 4 :(得分:0)

如果要将0-9范围内的int转换为char,通常可以这样写:

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

现在,如果你想要一个字符串,只需添加一个终止'\ 0'字符:

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

请注意:

  1. 您必须确保int在0-9范围内,否则将失败,
  2. 仅当数字的字符代码是连续的时才有效。在绝大多数基于ASCII的系统中都是如此,但并不能保证在所有情况下都是如此。