0% au considerat acest document util (0 voturi)
17 vizualizări4 pagini

Info

Documentul descrie diverse programe C++ care manipulează șiruri de caractere, inclusiv eliminarea vocailor, inversarea șirului, copierea subșirurilor și eliminarea caracterelor duplicate. Fiecare problemă este prezentată cu o soluție specifică și rezultatul așteptat. De asemenea, sunt menționate probleme suplimentare care implică transformări și verificări pe șiruri.

Încărcat de

Melissa Mitrea
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
17 vizualizări4 pagini

Info

Documentul descrie diverse programe C++ care manipulează șiruri de caractere, inclusiv eliminarea vocailor, inversarea șirului, copierea subșirurilor și eliminarea caracterelor duplicate. Fiecare problemă este prezentată cu o soluție specifică și rezultatul așteptat. De asemenea, sunt menționate probleme suplimentare care implică transformări și verificări pe șiruri.

Încărcat de

Melissa Mitrea
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

1.

Rezolvare:
Codul parcurge șirul s și aplică următoarele reguli:

 Dacă un caracter este e, se afișează *.


 Altfel, se afișează e urmat de acel caracter.

Observăm că secvența de ieșire conține e înainte de fiecare literă (exceptând e, care e înlocuit cu
*). Dacă eliminăm aceste e-uri și înlocuim * cu e, obținem șirul inițial.
Deci, s = "ideal".

2.

#include <iostream>

#include <cstring>

using namespace std;

int main() {

char s[100];

cin >> s;

int i = 0, j = 0;

while (s[i] != '\0') {

if (!(s[i] >= 'a' && s[i] <= 'z')) {

s[j] = s[i];

j++;

i++;

s[j] = '\0';

cout << s;

return 0;

}
3. #include <iostream>

#include <cstring>

using namespace std;

int main() {

char s[100];

cin >> s;

int i = 0, j = strlen(s) - 1;

while (i < j) {

swap(s[i], s[j]);

i++;

j--;

cout << s;

return 0;

4.
 strcpy(s+2, s+4) copiază începând de la s[4] ('e') peste s[2].
 Șirul devine "abefghgh", dar cu un singur gh deoarece strcpy copiază și '\0'.
 Se afișează "abefgh 6".
5.  x = "efg" (copiază de la s[4]).
 s = "abcd123" (înlocuiește s+4 cu "123").
 strcat(s, x) => s = "abcd123efg".
6.

Programul elimină caracterele duplicate consecutive:

 "abbacdde" → "abacdde" → "abacd"


Afișare: abacd.

7. Programul elimină caracterele duplicate consecutive:


 "abbacdde" → "abacdde" → "abacd"
Afișare: abacd.

8.

Rezolvare:

 Lungimea inițială a lui s este 11.


 Se înlocuiesc toate vocalele cu *.
 Șirul rezultat: *"nfrmtc"**.
 Se afișează: 11 *nf*rm*t*c*.

9.
rezolvare:

Se elimină vocalele a, e, o, i.

Șirul rezultat: "bcdfghd".

Se afișează: 11 bcdfghd.
10.

Rezolvare:

 Se elimină caracterele care sunt identice pe poziții simetrice.


 s = "abcduecda" → "bcduca".
 Se afișează: 9 bcduca.

Problema 11 - 20

Problema 11: Se elimină toate vocalele dintr-un șir de caractere. Problema 12: Se transformă
toate literele mici în litere mari. Problema 13: Se elimină ultima consoană dintr-un șir.
Problema 14: Se verifică dacă un șir este palindrom. Problema 15: Se sortează cuvintele dintr-o
propoziție în ordine alfabetică. Problema 16: Se determină cel mai lung sufix comun al două
șiruri. Problema 17: Se înlocuiesc vocalele mici cu echivalentele lor mari. Problema 18: Se
elimină toate cifrele dintr-un text și se convertesc literele în mici. Problema 19: Se afișează toate
prefixele unui cuvânt care încep cu o vocală. Problema 20: Se elimină toate aparițiile unei
singure vocale dintr-un șir.

S-ar putea să vă placă și