在C中从int创建char数组

Dob*_*obz 0 c

如何将int放入char数组?

int x = 21, i = 3;
char length[4];

while(i >= 0) {
    length[i] = (char) (x % 10);
    x /= 10;
    i--;
} printf("%s\n", length);

// length should now be "0021"
Run Code Online (Sandbox Code Playgroud)

这个字符串是空白的.

注意:这不是"如何在C++中从int转换为字符?"的副本.因为我还需要填充.即"0021"而不是"21"

Bar*_*mar 6

你没有得到数字的字符代码,你正在使用数字,就像它是自己的字符代码一样.它应该是:

length[i] = '0' + (x % 10);
Run Code Online (Sandbox Code Playgroud)

您还需要为length数组添加一个额外的元素以用于终止空字符:

char length[5];
length[4] = 0;
Run Code Online (Sandbox Code Playgroud)

  • 他们是一回事. (3认同)