简单的 int 到 char[] 转换

问题描述 投票:0回答:6

我有一个简单的问题

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

谢谢

c character-encoding
6个回答
30
投票
main()
{
  int i = 247593;
  char str[10];

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

希望对您有帮助。


4
投票
#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
投票

用这个。请注意 i 大于 9,因为这些将需要具有超过 2 个元素的 char 数组以避免缓冲区溢出。

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

1
投票

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

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

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

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

请注意:

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

0
投票

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

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

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

但是你的意思可能是“我想字符串化一个数字”,所以忽略这个响应:-)


0
投票

char[] s = {' ', ' ' ,' ','\u001A'}; //s[3]=26 Int32 Data = BitConverter.ToInt32(s);//现在数据=26

char[] H = 新的 char[4]; H[3] = (char)数据; //现在H == s

© www.soinside.com 2019 - 2024. All rights reserved.