我有一个简单的问题
如何简单地将整数(获取值 0-8)转换为字符,例如C 中的 char[2]?
谢谢
main()
{
int i = 247593;
char str[10];
sprintf(str, "%d", i);
// Now str contains the integer as characters
}
希望对您有帮助。
#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]);
}
用这个。请注意 i 大于 9,因为这些将需要具有超过 2 个元素的 char 数组以避免缓冲区溢出。
char c[2];
int i=1;
sprintf(c, "%d", i);
如果要将 0-9 范围内的 int 转换为 char,通常可以这样写:
int x;
char c = '0' + x;
现在,如果你想要一个字符串,只需添加一个终止符 ' ' 即可:
char s[] = {'0' + x, '\0'};
请注意:
你无法真正在“标准”C 中做到这一点,因为 int 和 char 的大小不固定。假设您正在 Intel PC 上的 Windows 或 Linux 下使用编译器...
int i = 5; char a = ((char*)&i)[0]; char b = ((char*)&i)[1];
记住您机器的字节顺序!而且这个 int “通常”是 32 位,所以 4 个字符!
但是你的意思可能是“我想字符串化一个数字”,所以忽略这个响应:-)
char[] s = {' ', ' ' ,' ','\u001A'}; //s[3]=26 Int32 Data = BitConverter.ToInt32(s);//现在数据=26
char[] H = 新的 char[4]; H[3] = (char)数据; //现在H == s