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

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;
}

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

最佳答案

您需要将该数字转换为字符。一种廉价的方法是:

sendBuffer[0] = '0' + count;



如果你需要,你会想要转向更复杂的计划。例如,如果您想将整数 42 转换为字符串“42”,您可以说:
#define ENOUGH ((CHAR_BIT * sizeof(int) - 1) / 3 + 2)

char str[ENOUGH];
snprint(str, sizeof str, "%d", 42);
ENOUGH 归功于 caf

10-08 12:29