C语言编程基础——printf格式控制符

背景为牛客网编程题BC14题

题目描述:

输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。

输入描述:

输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。

输出描述:

三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。

示例:

输入:
20130225

输出:
year=2013
month=02
date=25

实现代码:

#include <stdio.h>

int main(){
    int value;
    scanf("%8d",&value);
    
    int year = value/10000;                     //出生年份
    int month = (value%10000)/100;       //出生月份
    int date = value%100;                       //出生日期
    printf("year=%04d\n",year);
    printf("month=%02d\n",month);
    printf("date=%02d\n",date);
    
    return 0;
}

格式控制符的相关知识
(1)完整格式
1.% - x m . n 格式字符
2.有-表示左对齐,无表示右对齐
3.x表示空位需要填的字符
4.m表示最小域宽
5.n表示精度,一般用于实型小数点保留位数,按照四舍五入原则

(2)格式字符
整型
%d格式,表示整型
%hd格式,表示短整型
%ld格式,表示长整型
%lld/l64d格式,表示64位整型
%u格式,表示无符号整型,其他长度同d格式
%o格式,表示无符号八进制整型,对于负数直接将补码看成正数转换
%x格式,表示无符号十六进制整型,x小写对应的十六进制为小写,x大写对应大写

实型
%f格式,表示小数形式单精度实型
%lf格式,表示小数形式双精度实型
%e格式,表示指数形式单精度实型;le同理
%g格式,系统自动选定f或e格式,使输出的宽度最小,且不输出无意义的0
PS:G/E格式表示的指数形式中E大写

字符型
%c格式,表示单个字符
%s格式,表示字符串

其他
%p格式,表示指针
%i格式,据说是以前的整型格式字符
%%格式,输出%

(3)转义字符
\a:蜂鸣,响铃
\b:回退:向后退一格
\f:换页
\n:换行,光标到下行行首
\r:回车,光标到本行行首
\t:水平制表
\v:垂直制表
\:反斜杠
':单引号
":双引号
\ddd:三位八进制
\xhh:二位十六进制
\0:空字符(NULL)

(转自https://www.cnblogs.com/HackHarry/p/8320825.html 侵删)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值