如何不打印整数列表的最后一个逗号?

时间:2016-08-02 21:17:29

标签: c++

这是通过逗号分隔的整数列表,我只打印一个整数的实例,即使有多个逗号分隔。 (CodeEval挑战https://www.codeeval.com/open_challenges/29/

我的问题是我试图在没有任何外部存储的线性时间内完成此操作。我最后不能用逗号(例如1,3,4,6)。我在网上找到的解决方案都使用一些列表来存储整数,然后进行打印。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
    string str = "1,2,2,3,3,3,4,4";
    char c;
    int num = -1;
    for (int i = 0; i < str.length(); ++i) {
        if (str[i] == ',') continue;
        else {
            c = str[i]; 
            if ((c - '0') != num) {
                num = c - '0';
                cout << num << ",";
            } 
        }
    }
    cout << endl;        
    return 0;
}

3 个答案:

答案 0 :(得分:3)

其中一个解决方案是使用布尔标志:

bool first = true;
for( ... ) {
    if( first ) first = false;
    else std::cout << ',';
    std::cout << data;
}

答案 1 :(得分:0)

 if (i == str.length() - 1)
 {
     cout << num;
 }
 else 
 {
     count << num << ",";
 }

答案 2 :(得分:-2)

或者您可以在字符串处理结束时打印退格:

{{1}}