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

Numim citat într-un text o secvență de caractere din acel text care începe cu un caracter < și se termină

cu un caracter >, celelalte caractere ale secvenței fiind diferite de < și >.

Un text de cel mult 100 de caractere (litere mici ale alfabetului englez, spații și caracterele < şi >) conține

cel puțin un citat. Textul nu conține alte caractere < şi > decât cele care mărginesc citatele, și oricare

două citate nu au nici caractere < şi > și nici alte caractere în comun.

Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat și îl transformă în memorie prin înlocuirea tuturor literelor mici cuprinse în citate cu literele mari corespunzătoare, celelalte rămânând nemodificate, ca în exemplu. Programul afișează pe ecran textul obținut.

Exemplu: pentru textul mai bine sa fii un <om de valoare> decat un <om de succes>

se afișează mai bine sa fii un <OM DE VALOARE> decat un <OM DE SUCCES>

Răspunsuri la întrebare

Răspuns de MrHash
3

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

     char s[101];

     cin.get(s, 100);

     int i, n = strlen(s);

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

     {

           if (s[i] == '<')

              while (s[i] != '>')

             {

                          if (isalpha(s[i]))

                                s[i] = toupper(s[i]);

                          i++;

              }

      }

      cout << s;

      return 0;

}

Explicație:

Sirul se va modifica doar intre caracterele '<' si '>', deci ne intereseaza doar ce se afla intre cele 2 caractere, restul sirului ramanand neschimbat. Stiind ca '<' si '>' sunt folosite doar pentru citate si nu mai apar altundeva, parcurgem sirul de caractere pana gasim caracterul '<'. Pana la terminarea citatului (adica cand ajungem la caracterul '>') , daca gasim litere, le transformam in litere mari folosind functia toupper().


mathlover60: Mulțumesc mult!
Alte întrebări interesante