c++ 如何删除(或隐藏)输出的最后一个字符?[duplicate]

vc6uscn9  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(168)

此问题在此处已有答案

How can I print a list of elements separated by commas?(33个答案)
4小时前关门了。
这是我的代码。我试着在每个元素后面用逗号作为分隔符来打印矢量的内容。那么我该如何删除最后一个元素后面的逗号呢?

#include <iostream>
#include <vector>
#include <string>
using namespace std;
void printShoppingList(vector<string> s)
{
    for (auto i = s.begin(); i != s.end(); ++i)   //iterate vector from start to end
        cout<< *i<<", ";              //print each item from vector
}

因为现在我的输出

Items: eggs, milk, sugar, chocolate, flour,

结尾有逗号。
请帮助删除输出末尾的逗号。

ohtdti5x

ohtdti5x1#

您可以访问循环内部的迭代器,因此可以检查:

for (auto i = s.begin(); i != s.end(); ++i) {
        cout << *i;
        if (i + 1 != s.end()) { std::cout <<", "; }
    }

或者,您可以将逗号 * 放在元素 * 之前(第一个元素除外):

for (auto i = s.begin(); i != s.end(); ++i) {
        if (i != s.begin()) { std::cout <<", "; }
        cout << *i;
    }

相关问题