繁体   English   中英

删除 C++ 中的尾随逗号

[英]Remove trailing comma in C++

如何从行尾删除尾随逗号,从数组输出?

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

对于初学者这个循环

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];
}

例如像这样:

for (i = 0; i < numEntries; i++) {
    cout << myArray[i];
    if (i < numEntries - 1) cout << ",";
}

这是我一直使用的(发明作为一个挑战问题的答案):

char const* prefix = "";
for (auto& element : myArray) {
    std::cout << prefix << element;
    prefix = ", ";
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM