POEZIE

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';
}
%d bloggers like this: