小言_互联网的博客

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

333人阅读  评论(0)

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

char a;
char b[20];
scanf("%c",&a); //只能输入一个字符。
scanf("%s",b); //可以输入一串不超过20字符的字符串。

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

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


%c只能输出或输入一个字符,%s输出的是一串字符还有就是char a; string s;
输入的时候scanf("%c", &a);这里的&不能少
而scanf("%s",s);这里不能有&符号

转换说明符

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

2`标志

  左对齐:"-"   e.g.   "%-20s"
  右对齐:"+"   e.g.   "%+20s"

3.格式字符串(格式)

  〔标志〕〔输出最少宽度〕〔.精度〕〔长度〕类型
 "%-md" :  左对齐,若m比实际少时,按实际输出。
 "%m.ns" :  输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
 "%m.nf" :  输出浮点数,m为宽度,n为小数点右边数位
 "%3.1f" :   输入3852.99 输出3853.0 

转载:https://blog.csdn.net/z2431435/article/details/83931306
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场