c primer plus_chapter_four——字符串和格式化输入/输出

c primer plus_chapter_four——字符串和格式化输入/输出_第1张图片

 1、strlen();const;字符串;用c预处理指令#define和ANSIC的const修饰符创建符号常量;

2、c语言没有专门储存字符串的变量类型,字符串被储存在char类型的数组中;\0标记字符串的结束;

char name[40];//40表示元素数量,char表示访问类型;只能存39字符,最后一个存结束符;

字符串有结束符,而字符没有;

sizeof计算结束符\0;而strlen不会;

c99和c11为sizeof提供了%zd的转换说明,对于strlen同样适用,他们通常的返回类型为unsigned 或者unsigned long;

3、#define PRAISE "asdasdasd";

用define定义的字符串常量可以访问PRAISE查看,例如:printf("%S",PRAISE);

常量和c预处理器:

        #define a 1         //程序中所有的a都被替换成1;末尾不加分号;用大写来命名常量;

        还可以用于定义字符(单引号)和字符常量(双引号),

        #define BEEP   '\a'

        #define OPOP " asdsda "

const(限定符)   表示只读:const int a = 2;

4、头文件limits.h和float.h提供与整数类型和浮点类型大小限制相关的信息:

        limits.h包含: #define  INT_MAX  +32767             #define INT_MIN   -32768

float.h  包含:#define FLT_DTG    ;//该类型的最小有效数字数(十进制);

5、printf()

转换说明                                输出

%a                                        浮点数、十六进制和p计数法(p以前的数用十六进制来求
=(5+11/16+6/256)*2^12(p以后的数是几就是二的几次方比如:2的12次方))

%A                                         浮点数、十六进制和p计数法

%c                                         单个字符

%d                                        有符号十进制整数

%e                                        指数(e)计数法,浮点数

%E                                        浮点数、e计数法

%f                                        浮点数、十进制计数法

%g                                        根据值不同,自动选择%f、%e、%e格式用于指数小于-4或者大于或等于精度时

%G                                      根据值不同,自动选择%f、%E、%E格式用于指数小于-4或者大于或等于精度时    

%i                                        有符号十进制整数

%o                                        无符号八进制整数

%p                                        指针

%s                                        字符串

%u                                        无符号十进制整数

%x              %#x(按格式输出)无符号十六进制整数0f

%X                                        无符号十六进制整数0F

%%                                        打印一个%

printf()的转换说明修饰符

修饰符                                                含义

标记                                                    + - 空格 # 0  5种标记,%-10d

数字                                                最小字段宽度使用更宽的字段%4d

. 数字                                                精度  %5.2f 字段宽度为5,小数点后有两位数字

h                                                        shor int | unsigned int   ”%hu“,"%6.4hd"

hh                                                     signed char | unsigned char "%hhu"

j                                                        intmax_t | uintmax_t  "%jd"  "%8jx"

l                                                     long int | unsigned long int "%ld"

ll                                                   long long int | unsigned long long int  "%lld"

L                                                   long double  "%Lf"

t                                                     ptrdiff_t(两个指针差值类型) "%td"

z                                                size_t (sizeof的返回值类型)        "%zd"

printf() 中的float会被自动转换为double类型;

printf()的标记

标记                                                含义

-                                                从左侧打印该项"%-20s"

+                                                有符号值若为正则显示加号,负显示减号”%+6.2f“

空格                                           有符号值正则不显示,负则显示负号       ”    6.2f“

#                                                  格式化输出,%o则0开始  %x则0x开始  ”%#o“

0                                                  数值格式:用0代替空格填充字段宽度,整数格式:有- 或指定    精度,则忽略该标记,”%010d" ,,"%0.83f"

你可能感兴趣的:(c语言,开发语言)