%c与%s在C语言中的作用是什么
创始人
2024-11-21 16:22:45
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       字符串
   %%       "%"

补充知识:c语言中scanf("%c",&c)吃掉回车或者空格字符的问题

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 

补充知识:c语言中scanf("%c",&c)吃掉回车或者空格字符的问题

我就废话不多说了,大家还是直接看代码吧~

#include
void main(){
 int a;
 char b; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用
 printf("input a char\n");
 scanf("%c",&b); 
 printf("%d,%c\n",a,b); 
}
/*
(1)用getchar()清除
(2)用"%1s"来限制
(3)用格式串中空格或"%*c"来"吃掉"
(4)用函数fflush(stdin)清除全部剩余内容
*/

下面使用第二种方法

#include
int main(){ 
 
 int a;
 char b; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用
 printf("input a char\n");
 scanf("%1s",&b); 
 
 printf("%d %c\n",a,b);
 system("pause");
 return 0; 
}

环境(dev c++)

测试结果

%c与%s在C语言中的作用是什么

可以看出a的值异常了,为什么呢?

这应该和编译器有关系,因为%1s的输入方式的问题。

解决方法有两种:

第一:

char b;

int a;

将这两个变量的声明换一下,哈哈,以前老师说过。但我感觉着不是解决方法,如果还有其他的变量,这种方式是不是还会危害其他呢。

第二:

#include
int main(){ 
 
 int a;
 char b[2]; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用
 printf("input a char\n");
 scanf("%1s",&b); 
 
 printf("%d %c\n",a,b[0]);
 system("pause");
 return 0; 
}

b声明成字符创的形式,哈哈,这个好。。。。

结果为:

%c与%s在C语言中的作用是什么

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...