发生什么事了?我只想用一个元素转换列表中的字符。我希望 s 是“t”,但它给出了一个奇怪的输出。
int main(){
char c = 'z';
char s[] = {c};
printf("End: %c, %s", c, s);
}
输出:
End: z, zz♀ a
您将
s
打印出来,就好像它是一个字符串一样,这意味着 printf
希望它以 null 结尾。
您可以明确添加它:
char s[] = {c, '\0'};
或者,您可以将
s
视为数组并单独打印出其元素,而不是将其视为字符串:
char s[] = {c};
int len = 1;
for (int i = 0; i < len; ++i) {
printf("%c\n", s[i]);
}