字符串常量
- 字符串是内存中一段连续的char空间,以’\0’(数字0)结尾。
- 字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
字符串常量与字符常量的不同:
每个字符串的结尾,编译器会自动的添加一个结束标志位’\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位。 |
#include <stdio.h>int main(){int a = 100;printf("a = %d\n", a);//格式化输出一个字符串printf("%p\n", &a);//输出变量a在内存中的地址编号printf("%%d\n");char c = 'a';putchar(c);//putchar只有一个参数,就是要输出的charlong a2 = 100;printf("%ld, %lx, %lo\n", a2, a2, a2);long long a3 = 1000;printf("%lld, %llx, %llo\n", a3, a3, a3);int abc = 10;printf("abc = '%6d'\n", abc);printf("abc = '%-6d'\n", abc);printf("abc = '%06d'\n", abc);printf("abc = '%-06d'\n", abc);double d = 12.3;printf("d = \' %-10.3lf \'\n", d);return 0;}
控制台:
a = 100012FF944%da100, 64, 1441000, 3e8, 1750abc = ' 10'abc = '10 'abc = '000010'abc = '10 'd = ' 12.300 '
字符串输入
scanf函数与getchar函数
- getchar是从标准输入设备读取一个char。
- scanf通过% 转义的方式可以得到用户通过标准输入设备输入的数据。
```cppdefine _CRT_SECURE_NO_WARNINGS
include
int main() { char ch1; char ch2; char ch3; int a; int b;
printf("请输入ch1的字符:");ch1 = getchar();printf("ch1 = %c\n", ch1);getchar(); //测试此处getchar()的作用printf("请输入ch2的字符:");ch2 = getchar();printf("\'ch2 = %ctest\'\n", ch2);getchar(); //测试此处getchar()的作用printf("请输入ch3的字符:");scanf("%c", &ch3);//这里第二个参数一定是变量的地址,而不是变量名printf("ch3 = %c\n", ch3);printf("请输入a的值:");scanf("%d", &a);printf("a = %d\n", a);printf("请输入b的值:");scanf("%d", &b);printf("b = %d\n", b);return 0;
} ```
