打印存储在变量中的字符

时间:2019-03-24 20:21:44

标签: c

我无法获得打印初始化和声明的字符的功能。

#include <stdio.h>
int main() {

  char letter1 ="i";
  char letter2 ="n";
  char letter3 ="C";

  printf ("Programming %c%c %c\n", letter1, letter2, letter3);


  return 0;
}

我希望它显示

     "Programming in C"

使用

    printf ("Programming %c%c %c\n", letter1, letter2, letter3);

我收到以下错误

main.c:4:8: warning: incompatible pointer to integer conversion 
initializing 'char' with an expression of type 'char [2]' [-Wint- 
conversion]
                    char letter1 ="i";
                                             ^     

我还没有了解指针或任何东西,我习惯于使用更简单的语言。我正在尝试完成edX课程,但是我发现质量很差并且节奏繁琐。

如果您能在这里帮助我并向我推荐更好的学习C的资源,会很高兴

谢谢

2 个答案:

答案 0 :(得分:0)

 char letter1 ="i";

不幸的是,"i"是一个字符串。使用'i'表示字符,或者如果实际需要使用"i"[0]

如果编译器未发出警告,则说明它是可怕的编译器,或者您没有打开适当的警告。如果您收到警告而忽略了它...

答案 1 :(得分:-2)

C中的数组是指向第一个元素的指针。数组中的所有其他元素在堆栈堆栈的第一个元素之后。 C中的字符串由char数组表示。因此,以下示例将起作用:

char str[3];
str[0] = 'A';
str[1] = 'B';
str[2] = 'C';

幸运的是,C允许使用简写形式表示字符串。以下是两个示例:

char str[] = "ABC";
char str* = "ABC";

如前所述,数组是指针。因此,两个示例都可以。另外,请注意,我们直接初始化数组时并没有输入数组的大小。

如果您真的只想使用char变量来打印字符串,则必须使用引号,例如以下示例:

letter1 = 'A';
letter2 = 'B';
letter3 = 'C';

作为文献,我强烈推荐Hanly Koffman撰写的《 C中的问题解决和程序设计》。阅读起来很简单,并且有很多代码示例。