如何以一种简单的方式从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