Allright, sa va explic cum am inteles eu problema (asta doar din exemplu, neavand alta sursa concreta): ATANATA ATARETE METERETE. Eu am observat ca inaintea fiecarei vocale se pune vocala si T. In exemplul dat, am boldat cuvantul ce trebuie sa-l descifram si am subliniat adaugirile (adica vocala si T):
ATANATA. Deci este boldat ANA.
ATARETE - ARE si
METERETE adica mere.
- #include#includeusing namespace std; int main() { char x[100], y[100], voc[6]; voc[0]='A'; voc[1]='E'; voc[2]='I'; voc[3]='O'; voc[4]='U'; int cnt=0; cout<<"Introduceti sirul: "; cin.getline(x, 100); for(int i=0; x[i]; i++) { for(int j=0; voc[j]; j++) { if((x[i]==voc[j])&&(x[i+1]=='T')&&(x[i+2]==voc[j])) {x[i]='T'; x[i+1]='T';} } } for(int i=0; x[i]; i++) { if(x[i]!='T') { y[cnt]=x[i]; cnt++; } } y[cnt]=NULL; coutcontorul vectorului principal (i). Dupa terminarea acestui pas, trebuie stabilit sfarsitul noului sir format (y) prin atribuirea ultimului element al acestuia valoarea NULL care indica sfarsitul unui sir. Daca nu realizam aceasta operatie, la afisare aparea sirul corect + niste fantome (niste chestii ramase prin memorie). Note: 1-Acolo unde am scris "vector" se refera la un sir de caractere care se declara [code=text]char nume_sir[dimensiune_sir]
. Am scris "vector" pentru ca m-am gandit ca denumirea iti este familiara. 2- Nu sunt sigur de faptul ca asta e solutia optima. Neavand datele concrete ale problemei, nu ma pot pronunta in acest sens. 3-Dupa cum observi, nu este chiar asa greu. In acest caz, nu a fost nevoie de functii specifice sirurilor (cu exceptia lui cin.getilne(sir, dimensiune_sir)) dar vor exista cazuri in care va trebui sa folosesti functii (strstr, strcmp, strset, strrev...and many others) carora trebuie sa le cunosti parametrii si valorile pe care le returneaza in diverse cazuri. Good luck! -- 14 Jan 2012, 15:14 -- @cata45: Imi da erori la compilare. Cred ca ai uitat sa pui #include<cstring>.