简单的int到char[]转换
我有一个简单的问题 如何简单地将整数(获取值0-8)转换为字符,例如C中的字符[2] 谢谢简单的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个字符 但您可能是指“我想字符串化
希望它能对你有所帮助。使用这个。注意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'};
请注意:
#包括
#包括
#包括
void main()
{
INTA=543210;
字符arr[10]=“”;
itoa(a,arr,10);//itoa()是stdlib.h文件的一个函数,用于转换整数
//int到数组itoa(整数,目标数组,你想要的基数
//像十进制一样转换10
for(int i=0;i
为什么需要2char
?请给出一个输入和相应输出的示例。我不明白为什么需要。实际上,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]);
}