zbędna spacja po wyniku

0

Mam taki programik, ma on zwracać po wprowadzeniu stringa wynik w postaci samych cyfr w trzech grupach po trzy cyfry tj.
ze stringu np: 123asd456er789qw ma zwrócić 123 456 789 i tak się dzieje tylko że mam niepotrzebną spacje po wyniku, jak ją zlikwidować to kod:

#include <iostream>
    #include <string>
     
    using namespace std;
     
    int main()
    {
    string s;
     
    while(getline(cin, s)){
     
    for(int i = 0; i < s.length(); i++)
    {
    static int licznik;
    if(s[i] >= '0' && s[i] <= '9')
    {
    licznik++;
    cout << s[i];
    if(!(licznik % 3))
    cout << " ";
    }
    }
     
    cout << endl;
     
    }
    }
0

chyba mam

#include <iostream>
    #include <string>
     
    using namespace std;
     
    int main()
    {
    string s;
     
    while(getline(cin, s)){
     
    int licznik = 0;
    for(int i = 0; i < s.length(); i++)
    {
    if(s[i] >= '0' && s[i] <= '9')
    {
    licznik++;
    cout << s[i];
    if(licznik==3 || licznik==6)
    cout << " ";
    
    }
    }
     
    cout << endl;}
     
    return 0;
    }

temat zamnkniety

0

Ciekawe, bo jak wpiszę 12 cyfr w tym programie, to po 9 cyfrze nie wypisze spacji, nie wiem czy o to Ci chodziło

0

Oto wasze rozwiązanie ...

#include <iostream>
#include <string>

using namespace std;

int main()
{
string s;
int lwp=0;
cin >> s;

for(int i = 0; i < s.length(); i++)
{
if(s[i] >= '0' && s[i] <= '9')
{
if ( (lwp % 3 == 0) && (lwp>0) ) cout << "+";
cout << s[i];
lwp++;
}
}
cout << endl;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1