%c与%s的区别与划分

字符和字符串

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

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char *str ="hello";
    printf("%c",*str);
    return 0;
}

 运行结果是

 

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char *str ="hello";
    printf("%s",str);
    return 0;
}

运行结果是

 

 

所以%c是输出一个字符,而%s是输出一个字符串,字符串是char *型,打印%c时应该解引用(*str),打印%s时则直接用指针str即可,如果想用%c打印整个字符串,则可以用循环的方式

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char *str ="hello";
    int i=0;
    for(i=0;i<5;i++){
           printf("%c",*str++);
    }
    return 0;
}

char和char*

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

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

用作输入时, 二者参数都要传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位

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值