试图将char转换为C中的字符串:
#include <stdio.h>
#include <string.h>
int main ()
{
int x = 80;
char buffer[1] = {0};
buffer[0] = (char) x;
printf("%s", buffer);
return 0;
}
并且我得到了“ PP”。为什么结果是“ PP”而不是“ P”?
通话时
printf("%s", buffer);
您的字符串应为null终止。分配buffer [0]时,剩下的是一个1个字符长的“字符串”,最后一个字符不是'\ 0'。试试:
#include <stdio.h>
#include <string.h>
int main ()
{
int x = 80;
char buffer[2] = {0};
buffer[0] = (char) x;
buffer[1] = '\0';
printf("%s", buffer);
return 0;
}