Informatică, întrebare adresată de mariaclau9, 9 ani în urmă

Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații.

Cerinţa
Să se afişeze şirul obţinut după eliminarea din șir unor spații, astfel încât între cuvinte să fie un singur spațiu și să nu nu existe spații înainte de primul cuvânt și nici după ultimul.

Date de intrare
Programul va citi de la tastatură şirul dat.

Date de ieşire
Programul va afişa pe ecran şirul transformat corespunzător.

Restricţii şi precizări
șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații

Exemplu
Intrare

in vacanta plec la mare
Ieşire

in vacanta plec la mare


asa am rezolvat si imi da 40 de puncte si nu inteleg de ce pt ca exemplu imi da bine:
#include
#include
using namespace std;
char s[256],aux[256];
int l,i;
int main ()
{
cin.get(s,256);
i=0;
while(i if(s[i]==' ' && s[i+1]==' '){
strcpy(aux,s+i+1);
strcpy(s+i,aux);
}
else i++;
}
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de express
2
La aceasta problema trebuie sa folosesti corect functia strtok....eu am luat 100p . Succes!

#include <iostream>
#include <cstring>
using namespace std;
char s[1000],sep[]=" ", *p, c[50];
int main()
{

cin.getline(s,1000);
p=strtok(s,sep);
while(p!=NULL)
{
strcpy(c,p);
cout<<c<<" ";
p=strtok(NULL,sep);
}
return 0;
}

mariaclau9: Multumeesc ! ^^
Alte întrebări interesante