字符串常量

  • 字符串是内存中一段连续的char空间,以’\0’(数字0)结尾。
  • 字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。

字符串常量与字符常量的不同:
image.png

每个字符串的结尾,编译器会自动的添加一个结束标志位’\0’,即 “a” 包含两个字符’a’和’\0’。

字符串输出

printf函数和putchar函数
printf是输出一个字符串,putchar输出一个char。

printf格式字符:

%d int 接受整数值并将它表示为有符号的十进制整数
%hd short int 短整数
%hu unsigned short 无符号短整数
%o unsigned int 无符号8进制整数
%u unsigned int 无符号10进制整数
%x,%X unsigned int 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF
%f float 单精度浮点数
%lf double 双精度浮点数
%e,%E double 科学计数法表示的数,此处”e”的大小写代表在输出时用的”e”的大小写
%c char 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
%s char * 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符)
%p void * 以16进制形式输出指针
%% % 输出一个百分号

printf附加格式:

l(字母l) 附加在d,u,x,o前面,表示长整数
- 左对齐
m(代表一个整数) 数据最小宽度
0(数字0) 将输出的前面补上0直到占满指定列宽为止不可以搭配使用-
m.n(代表一个整数) m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a = 100;
  5. printf("a = %d\n", a);//格式化输出一个字符串
  6. printf("%p\n", &a);//输出变量a在内存中的地址编号
  7. printf("%%d\n");
  8. char c = 'a';
  9. putchar(c);//putchar只有一个参数,就是要输出的char
  10. long a2 = 100;
  11. printf("%ld, %lx, %lo\n", a2, a2, a2);
  12. long long a3 = 1000;
  13. printf("%lld, %llx, %llo\n", a3, a3, a3);
  14. int abc = 10;
  15. printf("abc = '%6d'\n", abc);
  16. printf("abc = '%-6d'\n", abc);
  17. printf("abc = '%06d'\n", abc);
  18. printf("abc = '%-06d'\n", abc);
  19. double d = 12.3;
  20. printf("d = \' %-10.3lf \'\n", d);
  21. return 0;
  22. }

控制台:

  1. a = 100
  2. 012FF944
  3. %d
  4. a100, 64, 144
  5. 1000, 3e8, 1750
  6. abc = ' 10'
  7. abc = '10 '
  8. abc = '000010'
  9. abc = '10 '
  10. d = ' 12.300 '

字符串输入

scanf函数与getchar函数

  • getchar是从标准输入设备读取一个char。
  • scanf通过% 转义的方式可以得到用户通过标准输入设备输入的数据。
    ```cpp

    define _CRT_SECURE_NO_WARNINGS

    include

int main() { char ch1; char ch2; char ch3; int a; int b;

  1. printf("请输入ch1的字符:");
  2. ch1 = getchar();
  3. printf("ch1 = %c\n", ch1);
  4. getchar(); //测试此处getchar()的作用
  5. printf("请输入ch2的字符:");
  6. ch2 = getchar();
  7. printf("\'ch2 = %ctest\'\n", ch2);
  8. getchar(); //测试此处getchar()的作用
  9. printf("请输入ch3的字符:");
  10. scanf("%c", &ch3);//这里第二个参数一定是变量的地址,而不是变量名
  11. printf("ch3 = %c\n", ch3);
  12. printf("请输入a的值:");
  13. scanf("%d", &a);
  14. printf("a = %d\n", a);
  15. printf("请输入b的值:");
  16. scanf("%d", &b);
  17. printf("b = %d\n", b);
  18. return 0;

} ```