提问人:Waypoint 提问时间:2/19/2011 最后编辑:Matteo ItaliaWaypoint 更新时间:11/18/2023 访问量:119876
简单的 int 到 char[] 转换
Simple int to char[] conversion
答:
30赞
Yoko Zunna
2/19/2011
#1
main()
{
int i = 247593;
char str[10];
sprintf(str, "%d", i);
// Now str contains the integer as characters
}
希望对您有所帮助。
评论
1赞
aberaud
1/31/2020
始终使用 or 和传递缓冲区大小,以避免缓冲区溢出和潜在的安全问题,即使对于像这样最简单的情况也是如此。使用是一个安全问题,除非您事先知道输出大小。snprintf
snprintf_s
sprintf
1赞
Erik
2/19/2011
#2
使用这个。请注意 i 大于 9,因为这些需要一个包含 2 个以上元素的 char 数组,以避免缓冲区溢出。
char c[2];
int i=1;
sprintf(c, "%d", i);
0赞
xanatos
2/19/2011
#3
你不能在“标准”C 中真正做到这一点,因为 int 和 char 的大小不是固定的。假设您正在英特尔 PC 上使用 Windows 或 Linux 下的编译器......
int i = 5; char a = ((char*)&i)[0]; char b = ((char*)&i)[1];
记住机器的字节序!而那个 int “通常”是 32 位,所以 4 个字符!
但你可能的意思是“我想串化一个数字”,所以忽略这个回答:-)
1赞
ChrisJ
2/19/2011
#4
如果你想将一个在 0-9 范围内的 int 转换为一个 char,你通常可以这样写:
int x;
char c = '0' + x;
现在,如果你想要一个字符串,只需添加一个终止的“\0”字符:
char s[] = {'0' + x, '\0'};
请注意:
- 你必须确保 int 在 0-9 范围内,否则会失败,
- 仅当数字的字符代码连续时,它才有效。这在绝大多数基于 ASCII 的系统中都是如此,但不能保证在所有情况下都如此。
评论
1赞
Oliver Charlesworth
2/19/2011
实际上,C 标准保证 to 的表示是连续的和升序的。'0'
'9'
4赞
prashant00101
9/11/2016
#5
#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]);
}
评论
0赞
zheng Huang
11/18/2023
#6
char[] s = {'\0', '\0' ,'\0','\u001A'};s[3]=26 Int32 Data = BitConverter.ToInt32(s);//现在 Data=26
char[] H = 新 char[4]; H[3] = (字符)数据;现在 H == s
评论
0赞
BoP
11/18/2023
该问题要求 C 代码。12年前。
评论
char