删除C ++中的结尾逗号

时间:2019-09-11 16:59:10

标签: c++ loops for-loop

如何删除行末尾的逗号(从数组输出)?

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 << ",";
}

3 个答案:

答案 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 = ", ";
}

这是在循环中不引入分支/条件的最大紧凑。