Informatică, întrebare adresată de gabimacau, 8 ani în urmă

Fişierul atestat.in conţine o singură linie pe care se află scris un text format din cel mult 70 de caractere, primul și ultimul caracter fiind literă, iar cuvintele din text sunt separate prin unul sau mai multe spaţii. Fiecare cuvânt este format doar din litere mari ale alfabetului limbii engleze.

Să se scrie un program, în limbajul Pascal/C/C++, care:

a) afişează textul pe o singură linie a ecranului, transformând ultima litera a fiecarui cuvant în literă mica;

b) prin intermediul unui subprogram, afişează pe ecran pe următoarea linie, textul inițial din care au fost șterse toate vocalele;

c) scrie în fişierul atestat.out, pe prima linie, toate cuvintele din textul inițial care au a doua literă vocală, separate printr-un spațiu. Dacă nu există astfel de cuvinte, se va scrie pe prima linie a fişierului mesajul “NU EXISTĂ ASTFEL DE CUVINTE”.
Exemplu: atestat.in

CLOPOTUL VECHI UMPLE CU GLASUL LUI SARA
am nevoie in c++


boiustef: am dacut ieri in in pascal, in c++ inca nu am cunpstinte destule...
boiustef: a facut..
gabimacau: multumesc, dar eu am nevoie in c++, adica pe platforma aia lucrez, eu nu stiu pascal
boiustef: iata am revenit cu varianta c++... m-am instruit ieri si azi... deci totul e posibil...

Răspunsuri la întrebare

Răspuns de boiustef
2

#include <iostream>

#include <fstream>

#include <cstring>

using namespace std;

ifstream f("atestat.in");

ofstream g ("atestat.out");

char s[70], aux[70], sep[]="   ", *cuv, voc[]="AEIOU";

short n, i, m;

int main()

{

   f.getline(s,70);

   n=strlen(s);

   strcpy(aux,s);;

   for (i=0; i<n; ++i)

   {

       if ((s[i]>='A' && s[i]<='Z' && s[i+1]==' ')|| i==n-1)

           s[i]=s[i]+('a'-'A');

   }

   cout << s << "\n";

   for (i=0; i<n; ++i)

   {

       if (!strchr(voc,aux[i])) cout << aux[i];

   }

   cout << endl;

  strcpy(s,aux);

  int exista=0;

   cuv=strtok(s,sep);

   while (cuv)

   {

      if (cuv[1]=='A' || cuv[1]=='E' || cuv[1]=='I' || cuv[1]=='O' || cuv[1]=='U')

      { g << cuv << " "; exista=1; }

      cuv=strtok(0,sep);

   }

   if (exista==0) g << "NU EXISTA ASTFEL DE CUVINTE";

}

Alte întrebări interesante