Se citește un număr n
, și n
versuri dintr-o poezie. Fiecare vers ocupă un rând și conține litere mari și mici ale alfabetului englez, spații, și semne de punctuație . , ! ?
. Să se elimine din fiecare vers toate semnele de punctuație, mai puțin cel aflat la final.
Date de intrare
Programul citește de la tastatură numărul n
și cele n
versuri.
Date de ieșire
Se vor afișa versurile modificate.
Restricții și precizări
1 ≤ n ≤ 15
- fiecare vers va conține maxim
255
de caractere
Exemplu
Intrare
3 A fost!... odata!, Ca, nicioada,, O fata? frumoasa... de imparat!
Ieșire
A fost odata, Ca nicioada, O fata frumoasa de imparat!
SOLUTIE
#include <iostream> #include <cstring> using namespace std; int main() { char n[300],sep[]=",.?!"; int nr; cin>>nr; cin.get(); for(int j=0; j<nr; j++) { cin.getline(n,300); for(int i=0; i<strlen(n); i++) { if(strchr(sep,n[i]) && n[i+1]!=NULL) { char aux[300]; strcpy(aux,n+i+1); strcpy(n+i,aux); i--; } } cout<<n<<endl; } return 0; }
SOLUTIE2
#include <iostream> #include <cstring> using namespace std; char m[20][256]; int main() { int n,x = 0; cin>>n; cin.get(); for(int k=1;k<=n ;k++) { char vers[256]; cin.getline(vers, 256); long l = strlen(vers); for(int i=0;i<l-1;i++) if(strchr(".,!?", vers[i])) { char aux[256]; strcpy(aux, vers+i+1); strcpy(vers+i, aux); l--; i = 0; } strcpy(m[++x],vers); } for(int i=1;i<=x;i++) cout<<m[i]<<'\n'; }