标题:求教"%26.*s%s\n", i + 1,什么意思?
只看楼主
文祖
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-14
 问题点数:0 回复次数:4 
求教"%26.*s%s\n", i + 1,什么意思?
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i < 26; ++i)
printf("%26.*s%s\n", i + 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i);
return 0;
}
上面是程序……求教了
搜索更多相关主题的帖子: void include return 
2013-03-14 20:38
梅可伟梅可伟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:180
注 册:2013-3-11
得分:0 

2013-03-14 21:16
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:0 
很美

www.qunxingw.wang
2013-03-14 21:28
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
得分:0 
#include <stdio.h>
int main(void)
{
    int i;
    for (i = 0; i < 26; ++i)
        printf("%26.*s%s\n", i + 1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" , "ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i);//
    return 0;
}
我试了一下:
printf("%26.*s%s\n", i + 1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" , "ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i);
其中,*是i+1的占位符,也就是说i+1的值会放到*中去,%26.*s的意思好像是说输出26的前*个,
26的意思应该是从屏幕的第26个位置开始向前输出*(i+1)个char字符,也就是靠右输出,你应该懂的。
后面的"ABCDEFGHIJKLMNOPQRSTUVWXYZ"相当于一个char指针数组,长度为26,
"ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i,既是把前面的数组后移26-i位输出后面的,
说的有点乱,你理解一下吧,如果有什么不对的地方还请指教。

*是i+1的占位符,%26.*s是"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的占位符,%s是"ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i的占位符。

[ 本帖最后由 shmilyflf 于 2013-3-14 21:45 编辑 ]
2013-03-14 21:43
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
以下是引用shmilyflf在2013-3-14 21:43:31的发言:

#include <stdio.h>
int main(void)
{
    int i;
    for (i = 0; i < 26; ++i)
        printf("%26.*s%s\n", i + 1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" , "ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i);//
    return 0;
}
我试了一下:
printf("%26.*s%s\n", i + 1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" , "ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i);
其中,*是i+1的占位符,也就是说i+1的值会放到*中去,%26.*s的意思好像是说输出26的前*个,
26的意思应该是从屏幕的第26个位置开始向前输出*(i+1)个char字符,也就是靠右输出,你应该懂的。
后面的"ABCDEFGHIJKLMNOPQRSTUVWXYZ"相当于一个char指针数组,长度为26,
"ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i,既是把前面的数组后移26-i位输出后面的,
说的有点乱,你理解一下吧,如果有什么不对的地方还请指教。

*是i+1的占位符,%26.*s是"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的占位符,%s是"ZYXWVUTSRQPONMLKJIHGFEDCBA" + 26 - i的占位符。



正解,辛苦


[fly]存在即是合理[/fly]
2013-03-14 21:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-400770-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.242170 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved