char str[ ]="abcdefg";printf("%4.5s",str);

高手们有没有人讲详细点的,我想教下,char str[ ]="abcdefg";printf("%4.5s",str);
最新回答
孤独似把刀

2024-11-05 09:35:10

结果为abcde。
在“.”之前的表示你要输出的占用几个位置,例如你在家里有一些位子,你有一些朋友来家里坐,那它们一共要占用几个位子呢,“.”之前就是表示这个,之后呢,就是表示保留的位数,就是在abcdefg里,你要几个呢,因为你是5,所以就应该 是abcde,它有五位,虽然你只占四个空,但你却有五个数,那就不用去理它啦,它表示默认的字段宽度,如果实际输出的字符数量少于4个,则左补空格,否则按实际长度输出。
就是这样啦
世界等同你

2024-11-05 02:59:04

%4.5s

%s表示输出字符串。

其中的4表示默认的字段宽度,如果实际输出的字符数量少于4个,则左补空格,否则按实际长度输出。

后面的.5表示最多输出str中的5个字符。

因此将会输出:

abcde
不痴情罪名

2024-11-05 18:54:29

"."前是保留的空数
"."后是保留的位数
位数大于空数时
则自动扩展

结果abcde
残喘

2024-11-05 02:35:25

%s是用来输出一个字符串。
有几种用法:
1: %s,例如printf(“%s”,“china”);输出china;
2:%ms,输出的字符串占m列,如果字符串本身长度大于m,则突破m的限制,将字符串全部输出。若小于m则左补空格;
3:%-ms,如果字符串长度小于m,则在m列范围内,字符串向左靠,右补空格;
4:%m.ns,输出的字符串占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右侧,左补空格;
5:%-m.ns,n个字符输出在m列范围内的左侧,右补空格。如果n>m,则m自动取n的值,即保证n个字符正常输出