其他分享
首页 > 其他分享> > 如何以一种简单的方式从C的循环中删除最后一个逗号?

如何以一种简单的方式从C的循环中删除最后一个逗号?

作者:互联网

该程序用于打印质数,直到输入给定,并用逗号分隔每个质数.

void main(){

    int N, counter=0, isPrime;

    int k, j;

    cout << "Enter maximum range: ";

    cin >> N;

    for (j=2; j<=N; j++){

        isPrime = 0;
        k = 2;

        while (k<j){

            if (j%k==0){

                isPrime++;
            }
            k++;
        }
        if (isPrime==0){

            if (k==N){
                cout << j;
            }
            else{
                cout << j << ",";
            }
            counter++;
        }
    }
    cout << endl;
    system("pause");
}

它仅除去素数输入的最后一个逗号,而不除去任何其他输入.我怎样才能解决这个问题?

Input: 23
Output: 2,3,5,7,11,13,17,19,23
Input: 8
Output: 2,3,5,7,
Input: 9
Output: 2,3,5,7,

解决方法:

不需要那么多:

std::string delim = "";
for( auto item : vec )
{
   std::cout << delim << item;
   delim = ",";
}

在所有情况下都不需要检查,例如向量是否为空.

如果您在开始时接受了多余的空间,只需将字符串替换为char,然后性能将得到更大的提高.

标签:comma,c,while-loop
来源: https://codeday.me/bug/20191011/1888980.html