使用cout,设定输出宽度后,可以用除“0”外的符号填充。那printf设定输出宽度后,数字位数不足,可以用除“0”外的符号填充吗?
1条回答 默认 最新
- threenewbee 2020-04-19 11:40关注
问题解决的话,请点下采纳
#include <stdio.h> #include <string.h> #include <stdlib.h> char * padleft(char *s, int n, char ch = ' ') { int l = strlen(s); char * ns = (char *)malloc(sizeof(char) * (n > l ? n + 1 : l + 1)); if (l < n) { memset(ns, ch, n - l); strcpy(ns + n - l, s); } else { strcpy(ns, s); } return ns; } char * padright(char *s, int n, char ch = ' ') { int l = strlen(s); char * ns = (char *)malloc(sizeof(char) * (n > l ? n + 1 : l + 1)); strcpy(ns, s); if (l < n) { memset(ns + l, ch, n - l); ns[n] = '\0'; } return ns; } int main() { printf("%s\n", padleft("", 5, '0')); printf("%s\n", padleft("", 6, '0')); printf("%s\n", padleft("123", 5, '0')); printf("%s\n", padleft("123", 5, '*')); printf("%s\n", padleft("12345", 5, '0')); printf("%s\n", padleft("1234567", 5, '0')); printf("%s\n", padright("", 5, '0')); printf("%s\n", padright("123", 6, '0')); printf("%s\n", padright("123", 5, '0')); printf("%s\n", padright("123", 5, '*')); printf("%s\n", padright("12345", 5, '0')); printf("%s\n", padright("1234567", 5, '0')); return 0; }
00000 000000 00123 **123 12345 1234567 00000 123000 12300 123** 12345 1234567 Press any key to continue . . .
解决 无用评论 打赏 举报
悬赏问题
- ¥15 VB6可以成功读取的文件,用C#读不了
- ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
- ¥15 C++ 句柄后台鼠标拖动如何实现
- ¥15 有人会SIRIUS 5.8.0这个软件吗
- ¥30 comsol仿真等离激元
- ¥15 静电纺丝煅烧后如何得到柔性纤维
- ¥15 (标签-react native|关键词-镜像源)
- ¥100 照片生成3D人脸视频
- ¥15 伪装视频时长问题修改MP4的时长问题,
- ¥15 JETSON NANO