[英]Converting an int to a char in C?
我正在尝试将一个int添加到char数组中。 我的(破损)代码如下,
string[i] = (char) number;
i
是数组的一个int索引, number
是一个整数。 实际上,在输入时我注意到如果数字超过一位数就会出现另一个问题,所以如果你对这个问题有一些答案那就太棒了!
如果number == 0
,修改了将数字'0'
变为string[i]
,并且类似于1
到9
之间的number
值,则需要在数字中加上'0'
:
assert(number >= 0 && number <= 9);
string[i] = number + '0';
逆转换用于将数字字符转换回相应的数字:
assert(isdigit(c));
int value = c - '0';
如果要将单个数字转换为可以使用的数字字符
string[i] = (char) (number+'0');
当然你应该检查int值是否在0到9之间。如果你有任意数字并且想要将它们转换为字符串,你应该使用snprintf
,但当然,你不能在char中使用它。 ,因为每个字符代表一个数字。
如果通过手动创建数字表示,则不应忘记C字符串最后需要\\0
字节。
你会想要使用sprintf()。
sprintf(string,'%d',number);
我相信。
编辑:为了回答你问题的第二部分,你将一个整数转换为一个字符,它只保留一个数字。 你想把它放在char *或char数组中。
使用asprintf:
char *x;
int size = asprintf(&x, "%d", number);
free(x);
更好,因为你不必分配内存。 是由asprintf完成的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.