繁体   English   中英

在C中将int转换为char?

[英]Converting an int to a char in C?

我正在尝试将一个int添加到char数组中。 我的(破损)代码如下,

string[i] = (char) number;

i是数组的一个int索引, number是一个整数。 实际上,在输入时我注意到如果数字超过一位数就会出现另一个问题,所以如果你对这个问题有一些答案那就太棒了!

如果number == 0 ,修改了将数字'0'变为string[i] ,并且类似于19之间的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM