👤

Se dă un text format din litere ale alfabetului englez și steluțe ('*'), care se poate întinde pe mai multe linii. Aliniază textul la dreapta, astfel încât:

numărul de steluțe dintre 2 cuvinte consecutive de pe aceeași linie să fie păstrate
fiecare linie să se termine cu o literă
la începutul fiecărei linii să fie adăugat un număr suplimentar de steluțe (poate fi 0) astfel încât toate liniile să aibă aceeași dimensiune (același număr de caractere)
numărul de caractere de pe fiecare linie să fie egal cu numărul maxim de caractere de pe o linie din textul inițial
Date de intrare
Se va da un text format din caractere ale alfabetului englez și caractere '*', distribuite pe una sau mai multe linii.

Date de ieșire
Programul va afișa pe ecran textul formatat după criterile prezentate mai sus.

Restricții și precizări
Fiecare linie va conține cel puțin un cuvânt (un grup de litere)
Fiecare linie va conține cel mult 1 000 caractere
1 ≤ numarul de linii din text ≤ 20

Date de intrare:
Acesta*este
********un****text
***impartit*pe*mai
*multe*linii

Date de iesire:
*******Acesta*este
********un****text
***impartit*pe*mai
*******multe*linii

Am incercat si eu ceva doar ca nu am stiut cum sa fac sa aflu cate linii vor fi citite


Se Dă Un Text Format Din Litere Ale Alfabetului Englez Și Steluțe Care Se Poate Întinde Pe Mai Multe Linii Aliniază Textul La Dreapta Astfel Încât Numărul De St class=

Răspuns :

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <cstring>

using namespace std;

int main() {

char txt[20][1000];

char line[1000];

//Citire text

int nr_linii = 0;

while (cin.getline(line, 1000)) {

 strcpy(txt[nr_linii++], line);

}

//Determinare lungime maxima

int l_max = 0;

for (int i = 0; i < nr_linii; i++) {

 if (strlen(txt[i]) > l_max) l_max = strlen(txt[i]);

}

//Facem toate liniile de aceasi lungime adaugand stelute

for (int i = 0; i < nr_linii; i++) {

 strcpy(line, "");

 for (int j = 0; j < l_max; j++) {

  strcat(line, "*");

 }

 strcpy(line + l_max - strlen(txt[i]), txt[i]);

 strcpy(txt[i], line);

}

//Afisare rezultat

for (int i = 0; i < nr_linii; i++) {

 cout << txt[i] << endl;

}

}

Vezi imaginea ANDREI750238