如何删除行末尾的逗号(从数组输出)?
for ( k = numEntries - 1; k >= i; k--)
myArray[k] = myArray[k - 1];
myArray[i] = newValue;
for (i = 0; i < numEntries; i++) {
cout << myArray[i];
cout << ",";
}
答案 0 :(得分:2)
对于初学者而言,此循环
for ( k = numEntries - 1; k >= i; k--)
^^^^^^
myArray[k] = myArray[k - 1];
不正确。显然(由于此声明myArray[i] = newValue;
),您的意思是
for ( k = numEntries - 1; k > i; k--)
^^^^^
myArray[k] = myArray[k - 1];
关于您的问题,第二个循环看起来像
for (i = 0; i < numEntries; i++) {
if ( i != 0 ) cout << ",";
cout << myArray[i];
}
答案 1 :(得分:1)
例如像这样:
for (i = 0; i < numEntries; i++) {
cout << myArray[i];
if (i < numEntries - 1) cout << ",";
}
答案 2 :(得分:0)
这就是我一直使用的(发明作为一个挑战问题的答案):
char const* prefix = "";
for (auto& element : myArray) {
std::cout << prefix << element;
prefix = ", ";
}
这是在循环中不引入分支/条件的最大紧凑。