我有一个简单的问题
如何将整数(取值范围为0-8)简单地转换为字符,例如在C中的char[2]?
谢谢
main()
{
int i = 247593;
char str[10];
sprintf(str, "%d", i);
// Now str contains the integer as characters
}
希望这对你有所帮助。
snprintf
或 snprintf_s
并传递缓冲区大小以避免缓冲区溢出和潜在的安全问题,即使对于像这样的最简单情况也是如此。除非您知道输出大小,否则使用 sprintf
是一种安全问题。 - aberaud#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]);
}
int x;
char c = '0' + x;
char s[] = {'0' + x, '\0'};
'0'
到 '9'
的表示是连续且递增的。 - Oliver Charlesworthchar c[2];
int i=1;
sprintf(c, "%d", i);
你无法在“标准”C中真正实现它,因为int和char的大小并不固定。假设你正在使用Intel PC上的Windows或Linux编译器...
int i = 5; char a = ((char*)&i)[0]; char b = ((char*)&i)[1];
Remember of endianness of your machine! And that int are "normally" 32 bits, so 4 chars!
但你可能是想要将数字转换为字符串,所以可以忽略这个回复 :-)
char
?请给出一个输入和相应输出的示例。 - Oliver Charlesworth