printf("%3s,%5.3s\n","Hello","Hello","Hello"); 的结果为什么是He
答案:5 悬赏:0
解决时间 2021-02-18 03:37
- 提问者网友:风月客
- 2021-02-17 07:02
printf("%3s,%5.3s\n","Hello","Hello","Hello"); 的结果为什么是Hello, Hel
最佳答案
- 二级知识专家网友:北方的南先生
- 2021-02-17 08:29
回复:
%3s,3表示至少输出的字符数量,不足补空格,多则原样输出。
5>3,所以原样输出
%5.3s 输出占5列,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。
所以输出前三个字符"Hel"
延伸:
1.%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。例如:printf("%e",123.456);输出如下:1.234560e+002(共13列,有的系统的规定有所不同);
2.%m.ne 输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
后两个都是s格式符,用来输出字符串。
%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%3s,3表示至少输出的字符数量,不足补空格,多则原样输出。
5>3,所以原样输出
%5.3s 输出占5列,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。
所以输出前三个字符"Hel"
延伸:
1.%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。例如:printf("%e",123.456);输出如下:1.234560e+002(共13列,有的系统的规定有所不同);
2.%m.ne 输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
后两个都是s格式符,用来输出字符串。
%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
全部回答
- 1楼网友:慢性怪人
- 2021-02-17 10:53
首先,你这个语句只输出两个字符串,建议改成printf("%3s,%5.3s\n","Hello","Hello");
其次,这个%5.3s表示输出占5列,但只取字符串中左端3个字符
你的结果应该是Hello,空格空格Hel回车
这应该是最基础的C的知识了吧,建议你好好看看书,书上写的很详细的
其次,这个%5.3s表示输出占5列,但只取字符串中左端3个字符
你的结果应该是Hello,空格空格Hel回车
这应该是最基础的C的知识了吧,建议你好好看看书,书上写的很详细的
- 2楼网友:洒脱疯子
- 2021-02-17 10:31
%3s,格式输出字符串,右对齐,超出3个长度的,就全部输出;
%5.3s, 输出字符串占5个位置,有对齐,左补空格,输出3个字符;
%5.3s, 输出字符串占5个位置,有对齐,左补空格,输出3个字符;
- 3楼网友:往事隔山水
- 2021-02-17 09:58
printf("%3s","hello");的意思是保证输出3位,当要输出的内容大于3位的时候,全部输出
printf("%5.3s","hello"); 输出5位,其中3位为输出的内容,其余空格
printf("%5.3s","hello"); 输出5位,其中3位为输出的内容,其余空格
- 4楼网友:风格不统一
- 2021-02-17 09:51
%ms 输出占m个字元 不够m个补空格到m个
%m.ns 输出占m个字符,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
第一个是输出一个3最少3个字符的输出符号. 但hello为5个字符 所以输出hello
第二个是输出左端3个字符 所以输出hel
第三个hello 没有输出符 所以没有输出
%m.ns 输出占m个字符,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
第一个是输出一个3最少3个字符的输出符号. 但hello为5个字符 所以输出hello
第二个是输出左端3个字符 所以输出hel
第三个hello 没有输出符 所以没有输出
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯