处理“行末不能有多余空格”的小技巧
处理“行末不能有多余空格”的小技巧
某些题目或者某些oj
(比如PTA
)会在你输出一个数组时有以下要求:
- 两个数字之间以空格分隔
- 行末不能有多余空格
我们有如下技巧:
注意,以下输出示例使用的是c++语言,其他语言可以根据思路自己类比实现
for (int i = 1; i <= n; ++i) {
cout << a[i] << " \n"[i == n];
}
这样就能满足之前提到的两个要求。
这里需要解释的主要是" \n"[i == n]
这里
其中," \n"
实际上是一个字符串,有两个字符,第一个是空格符,第二个是换行符。这时你可以类比数组的a[i]
,字符串后面跟一个[x]
就代表取这个字符串下标为x的字符。故当i==n
为假(即i<n
)时,输出字符串下标为0的字符(即空格符),当i==n
为真时,输出字符串下标为1的字符(即换行符)。
这样,就用一个比较简洁的方式满足了要求。