字符串和格式化输入输出
字符串和格式化输入输出
字符串简介
c语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中。
c语言用数组末尾的字符\0来标记字符串的结束
1 | 'X' // X |
常量和C预处理器
1 |
const 用于限定一个变量为只读
明示常量
limits.h float.h
1 |
limits.h
| 明示常量 | 含义 |
|---|---|
| CHAR_BIT | char类型的位数 |
| CHAR_MAX | char类型的最大值 |
| CHAR_MIN | char类型的最小值 |
| SCHAR_MAX | signed char类型的最大值 |
| SCHAR_MIN | signed char类型的最小值 |
| UCHAR_MAX | unsigned char类型的最大值 |
| SHRT_MAX | short类型的最大值 |
| SHRT_MIN | short类型的最小值 |
| USHRT_MAX | unsigned short类型的最大值 |
| INT_MAX | int类型的最大值 |
| INT_MIN | int类型的最小值 |
| UINT_MAX | usigned int类型的最大值 |
| LONG_MAX | long 类型的最大值 |
| LONG_MIN | long 类型的最小值 |
| ULONG_MAX | usigned long类型的最大值 |
| LLONG_MAX | long long 类型的最大值 |
| LLONG_MIN | long long 类型的最小值 |
| ULLONG_MAX | usigned long long类型的最大值 |
float.h
| 明示常量 | 含义 |
|---|---|
| FLT_MANT_DIG | float类型的尾数位数 |
| FLT_DIG | float类型的最少有效字符 十进制 |
| FLT_MIN_10_EXP | 带全部有效数字的float类型的最小负指数 10为底 |
| FLT_MAX_10_EXP | float类型的最大正指数 10为底 |
| FLT_MIN | 保留全部精度的float类型的最小正数 |
| FLT_MAX | float类型的最大正数 |
| FLT_EPSILON | 1.00和比1.00大的最小float类型之间的差值 |
FLT可以替换成 DBL 和LDBL 来表示double 和long double
printf() 和scanf()
printf
| 转换说明 | 输出ntf |
|---|---|
| %a | 浮点数、十六进制数和p记数法 |
| %A | 浮点数、十六进制数和p记数法 |
| %c | 单个字符 |
| %d | 有符号 十进制 整数 |
| %e | 浮点数 e记数法 |
| %E | 浮点数 e记数法 |
| %f | 浮点数 |
| %g | 根据值的不同,自动选择%f或%e格式用于指数小于-4或者大于或等于精度时 |
| %G | 根据值的不同,自动选择%f或%e格式用于指数小于-4或者大于或等于精度时 |
| %i | 同%d |
| %o | 无符号 八进制 整数 |
| %p | 指针 |
| %s | 字符串 |
| %u | 无符号 十进制 整数 |
| %x | 无符号十六进制整数 使用0fprint |
| %X | 无符号十六进制整数 使用0F |
| %% | % |
| 修饰符 | 含义 |
|---|---|
| 标记 | - + 空格 # 0 例:”%-10d” |
| 数字 | 最小字段宽度 如果该字段不能容纳待打印的数字或字符串,系统会使用更宽的字段 “%4d” |
| .数字 | 精度.对于%e,%E和%f转换,是将要在小数点的右边打印的数字的位数。对于%g和%G转换,是有效数字的最大位数。对于%s转换,是将要打印的字符的最大数目。对于整数转换,是将要打印的数字的最小位数。如果必要,要使用前导0来达到位数。只使用”.”表示其后跟随一个0,所以%.f和%.0f相同示例: “%5.2f”表示打印一个浮点数,它的字段宽度为5个字符,小数点后有两个数字 |
| h | 和整数转换说明符一起使用,表示一个short int或unsigned short int类型数值示例: “%hu”, “%hx”, “%6.4hd” |
| hh | 和证书转换说明符一起使用,表示一个signed char或unsigned char类型数值 |
| j | 和整数转换说明符一起使用,表示一个intmax_t或uintmax_t值示例: “%jd”,”%8jx” |
| l | 和整数转换说明符一起使用,表示一个long int或unsigned long int类型值 |
| ll | 和整数转换说明符一起使用,表示一个long long int或unsigned long long int类型值(C99)示例: “%lld”,”%8llu” |
| L | 和浮点数转换说明符一起使用,表示一个long double值 示例: “%Lf”, “%10.4Le” |
| t | 和整数转换说明符一起使用,表示一个ptrdiff_t值(与两个指针之间的差相对应的类型)(C99) 示例: “%td”, “%1ti” |
| z | 和整数转换说明符一起使用,表示一个size_t值(sizeof返回的类型)(C99) 示例: “%zd”,”%12zx” |