C语言中%c与%s的区别与划分

时间:2024-12-19 17:49:42

文章目录

    • 字符和字符串
    • char和char*
    • 转换说明符
    • 标志
    • 格式

字符和字符串

%c格式对应的是单个字符
%s格式对应的是字符串
例:

char a;
char b[20];
scanf("%c",&a); //只能输入一个字符。
scanf("%s",b); //不超过20字符的字符串,字符串下标为0~19。

char和char*

%c对应类型为char
%s对应类型为char * , 即字符串。

用作输入时, 二者参数都要传char * 型. 
%c输入函数只会对一个字节空间赋值. 而%s会一直赋值,直到输入中遇到空白字符为止.
用作输出时, %c传char类型,输出一个字符. %s传char*类型参数, 输出到\0为止.

输入的时候scanf("%c", &a);这里的&不能少
而scanf("%s",s);这里不能有&符号

转换说明符

%c             字符
%d             有符号十进制整数
%f             浮点数(包括float和doulbe)
%e(%E)     	   浮点数指数输出[e-(E-)记数法]
%g(%G)     	   浮点数不显无意义的零"0"
%i             有符号十进制整数(%d相同)
%u             无符号十进制整数
%o             八进制整数        		     0123
%x(%X)     	   十六进制整数0f(0F)          0x1234
%p             指针
%s             字符串

标志

  左对齐:"-"      "%-2s"代表左对齐2位
  右对齐:"+"      "%+2s"代表右对齐2位

格式

〔标志〕〔输出最少宽度〕〔.精度〕〔长度〕类型

“%-md” : 左对齐,若m比实际少时,按实际输出。
“%” : 输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
“%” : 输出浮点数,m为宽度,n为小数点右边数位
“%3.1f” : 输入3852.99 输出3853.0