简单的int到char[]转换

简单的int到char[]转换,c,character-encoding,C,Character Encoding,我有一个简单的问题 如何简单地将整数(获取值0-8)转换为字符,例如C中的字符[2] 谢谢 希望它能对你有所帮助。使用这个。注意i大于9,因为这需要一个包含2个以上元素的字符数组来避免缓冲区溢出 char c[2]; int i=1; sprintf(c, "%d", i); 在“标准”C中不能真正做到这一点,因为int和char的大小是不固定的。假设您正在英特尔PC上使用Windows或Linux下的编译器 记住你的机器的耐久性!int通常是32位,所以是4个字符 但您可能是指“我想字符串化

我有一个简单的问题

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

谢谢


希望它能对你有所帮助。

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

char c[2];
int i=1;
sprintf(c, "%d", i);
在“标准”C中不能真正做到这一点,因为int和char的大小是不固定的。假设您正在英特尔PC上使用Windows或Linux下的编译器

记住你的机器的耐久性!int通常是32位,所以是4个字符


但您可能是指“我想字符串化一个数字”,所以忽略此响应:-)

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

int x;
char c = '0' + x;
现在,如果需要字符串,只需添加一个终止字符“\0”:

char s[] = {'0' + x, '\0'};
请注意:

  • 您必须确保int在0-9范围内,否则它将失败
  • 仅当数字的字符代码是连续的时,它才起作用。这在绝大多数基于ASCII的系统中是正确的,但并不能保证在所有情况下都是正确的
  • #包括
    #包括
    #包括
    void main()
    {
    INTA=543210;
    字符arr[10]=“”;
    itoa(a,arr,10);//itoa()是stdlib.h文件的一个函数,用于转换整数
    //int到数组itoa(整数,目标数组,你想要的基数
    //像十进制一样转换10
    for(int i=0;i
    为什么需要2
    char
    ?请给出一个输入和相应输出的示例。我不明白为什么需要。实际上,C标准保证
    '0'
    '9'
    的表示是连续的和升序的。虽然
    itoa
    非常容易使用,并且受到许多编译器的支持,但它似乎是如前所述,它没有在ANSI-C中定义。始终使用
    snprintf
    snprintf\u s
    并传递缓冲区大小,以避免缓冲区溢出和潜在的安全问题,即使是像这样最简单的情况。使用
    sprintf
    也是一个安全问题,除非您事先知道输出大小。
    int x;
    char c = '0' + x;
    
    char s[] = {'0' + x, '\0'};
    
    #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]);
    
    }