隔行如隔山!%c与%s,只有程序员才懂的C语言符号!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了隔行如隔山!%c与%s,只有程序员才懂的C语言符号!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3055字,纯文字阅读大概需要5分钟。
内容图文
![隔行如隔山!%c与%s,只有程序员才懂的C语言符号!](/upload/InfoBanner/zyjiaocheng/617/5a38dd99b2554b52810bcaf3cac0fbff.jpg)
原文链接:https://blog.csdn.net/zhgl7688
这篇文章主要介绍了C语言中%c与%s的区别与划分详解,希望对大家有所帮助。一起跟随小编过来看看吧!
![隔行如隔山!%c与%s,只有程序员才懂的C语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075747847.jpg)
?
%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<stdio.h>
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<stdio.h>
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语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075748022.jpg)
?
可以看出a的值异常了,为什么呢?
这应该和编译器有关系,因为%1s的输入方式的问题。
解决方法有两种:
第一:
char b;
int a;
将这两个变量的声明换一下,哈哈,以前老师说过。但我感觉着不是解决方法,如果还有其他的变量,这种方式是不是还会危害其他呢。
第二:
#include<stdio.h>
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语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075748163.jpg)
?
以上这篇C语言中%c与%s的区别与划分详解就是小编分享给大家的全部内容了,有什么问题欢迎评论区留言。
![隔行如隔山!%c与%s,只有程序员才懂的C语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075748350.jpg)
?
最后,如果你也想成为程序员,想要快速掌握编程,赶紧加入学习企鹅圈子!
里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”
编程学习书籍:
![隔行如隔山!%c与%s,只有程序员才懂的C语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075748420.jpg)
?
编程学习视频:
![隔行如隔山!%c与%s,只有程序员才懂的C语言符号! - 文章图片](/upload/getfiles/0001/2021/4/30/20210430075748489.jpg)
?
内容总结
以上是互联网集市为您收集整理的隔行如隔山!%c与%s,只有程序员才懂的C语言符号!全部内容,希望文章能够帮你解决隔行如隔山!%c与%s,只有程序员才懂的C语言符号!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。