C将字符转换为字符串

问题描述 投票:-1回答:1

试图将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”?

c
1个回答
0
投票

通话时

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.