汪瑜聪 发表于 2019-10-13 14:46:35

c语言s1e4

s1e4最后题 printf("打印五个字符:%c %c %c %c %c\n", 70, 105, 115, 104, 67);为什么会显示字母{:5_99:}

zltzlt 发表于 2019-10-13 14:53:29

%c 用于把输入的数字(70, 105, 115, 104, 67)按照 ASCII 码相应转换为对应的字符。F 的 ASCII 码是 70,i 的 ASCII 码是 105,s 的 ASCII 码是 115,以此类推。

jackz007 发表于 2019-10-13 14:54:35

本帖最后由 jackz007 于 2019-10-13 15:05 编辑

      因为字符都是有编码的,西文字符 ASCII 码一共有 128 个,编码值的范围是 0 ~127,printf("%c" , 70) 的作用就是根据数值编码(70)打印单个字符('F')。
      看看下面的代码也许可以帮助楼主了解整型数和字符之间的关系:
#include <stdio.h>
main(void)
{
      char s         ;
      s[ 0] = 49         ; // 字符 '1'
      s[ 1] = 51         ; // 字符 '3'
      s[ 2] = 53         ; // 字符 '5'
      s[ 3] = 65         ; // 字符 'A'
      s[ 4] = 67         ; // 字符 'C'
      s[ 5] = 69         ; // 字符 'E'
      s[ 6] = 98         ; // 字符 'b'
      s[ 7] = 100      ; // 字符 'd'
      s[ 8] = 102      ; // 字符 'f'
      s[ 9] = 10         ; // 字符 '\n'
      s = 0          ; // 字符串结束标志
      printf("%s" , s)   ; // 打印出字符串 "135ACEbdf\n"
}
页: [1]
查看完整版本: c语言s1e4