将整数值存储在C中的字符数组中

Ays*_*yse 4 c int char

这是一个非常微不足道的问题,但我不知道为什么我没有得到正确的输出.这是我想要做的:

char sendBuffer[1000];
int count=0:
while(count<10)
{
    sendBuffer[0]=count;
    sendBuffer[1]='a';
    sendBuffer[2]='b';
    sendBuffer[3]='c';
    sendBuffer[4]='\0';
    printf(%s,sendBuffer);
    count=count+1;
}
Run Code Online (Sandbox Code Playgroud)

在输出中,除第一个索引外,所有缓冲区都正确打印.我希望在缓冲区的开头打印1,2,3等,但它不起作用.请帮忙

cni*_*tar 6

您需要将该数字转换为字符.一个便宜的方法是:

sendBuffer[0] = '0' + count;
Run Code Online (Sandbox Code Playgroud)

无论如何要显示大于9的整数

如果您需要,您将需要转向更精细的方案.例如,如果要将整数42转换为字符串"42",您可以说:

#define ENOUGH ((CHAR_BIT * sizeof(int) - 1) / 3 + 2)

char str[ENOUGH];
snprint(str, sizeof str, "%d", 42);
Run Code Online (Sandbox Code Playgroud)

信用ENOUGH咖啡馆.