我的程序无法打印单字符串[重复]

问题描述 投票:0回答:2

我正在尝试学习 C,但由于某种原因我的程序不想打印字母。它可以打印其他所有东西,比如整数和浮点数。

它也没有给我一个错误,它只是跳过了字符应该在的那一行。

我尝试简单地打印出字母“E”作为测试,但它什么也没打印出来。

#include <stdio.h>
int main()
{
int mynum = 6;
float myfloat = 3.14;
char* myletter = "E";


printf("%i\n",mynum);
printf("%f\n",myfloat);
printf("%c\n",myletter);
}
c printf c-strings conversion-specifier
2个回答
3
投票

要输出字符串,您需要使用转换说明符

s
而不是
c

printf("%s\n",myletter);

否则这个电话

printf("%c\n",myletter);

尝试 tp 将指针输出为调用未定义行为的字符。

如果你只想输出字符串文字的第一个字符,那么你应该写

printf("%c\n",*myletter);

printf("%c\n",myletter[0]);

注意字符串字面量

"E"
在内存中是作为字符数组存储的,如

{ 'E', '\0' }

1
投票

要打印一个字符,您可以这样做:

char myletter = 'E'; // <-- Note the single quotes and is not a pointer
printf("%c\n",myletter);

打印字符串:

char *myletter = "E"; // <-- Note the double quotes
printf("%s\n",myletter);
© www.soinside.com 2019 - 2024. All rights reserved.