处理“行末不能有多余空格”的小技巧

发布时间 2023-06-16 18:20:00作者: NonName

处理“行末不能有多余空格”的小技巧

某些题目或者某些oj(比如PTA)会在你输出一个数组时有以下要求:

  1. 两个数字之间以空格分隔
  2. 行末不能有多余空格

我们有如下技巧:

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的字符(即换行符)。

这样,就用一个比较简洁的方式满足了要求。