RezolvariStringuri

using namespace std; int main {int i,j; char s[100]="azi e ceva azi e azi"; i=0; while(i<strlen(s)) {j=i+1; while(s[j]!=' ' && s[j]!=NULL) j++; if(j-i==3) {s[i]='*'; strcpy(s+i+1,s+i+3); i=i+2; } else i=j+1; } cout<<s; return 0;
 * P1. Se citeste un sir cu maxim 100 de caractere Sa se inlocuiasca toate cuvintele de 3 litere cu *.**
 * || #include

} || //dar utilă pentru a învăţa să lucrăm pe stringuri// //ar fi să căutăm al 2 lea şir în primul şi să// //"tăiem" din spatele şirului o literă până găsim// //un subşir.......// //sau să luăm prima literă a primului cuvânt// //să-l adăugăm la sfârşit ......//
 * P2. Circular** []
 * //o soluţie **ineficientă** ca timp de execuţie,//

problema campion using namespace std; ifstream f("circular.in"); ofstream g("circular.out"); char si[20001],sf[20001],*p; int n; int main { char sc[20001],st[20001]; f>>n; f.get; f.getline(si,20000); f.getline(sf,20000); strcpy(sc,sf); int c=n-1; int ok=1; //prima litera tb sa existe in textul initial// //if(strchr(si,sf[0])==0) g<<-1;// //else// //{ while(ok)// //{// //p=strstr(si,sc);// //if(p){ok=0;}// //else// //{ strcpy(sc+c,sc+c+1);// sterg ultima litera --c; } } ++c; //valoare corecta c// //int poz=p-si;//pozitia celui mai lung subsir //impart sirul// //strcpy(st,sf+c);// //strcpy(si+poz,si+poz+c);// sterg din sirul initial subsirul gasit if (strcmp(si,st)==0) g<>n; f.get; f.getline(si,20000); f.getline(sf,20000); strcat(si,si); p=strstr(si,sf); if(p) g<<p-si; else g<<-1; ||


 * STRTOK**
 * Sintaxa: strtok(s1_unde_caut, s2_ce_separatori_caut) **
 * Functia inlocuieste separatorii din s1 cu NULL si returneaza un pointer catre primul character al primei unităţi lexicale(Ex.cuvant)..//__pentru a gasi urmatoarea secventa se apeleaza strtok(NULL, s2)__// **

using namespace std; int main { char s[100]="Popescu Vasile",*c1,*c2; c1=strtok(s," "); cout<<c1<<endl; c2=strtok(NULL," "); cout<<c2<<endl; strcat(c2," "); strcat(c2,c1); cout<<c2; return 0; }
 * P3. Separarea cuvintelor din text cu strtok**
 * 1) include
 * 2) include

//exemple ptr.utilizarea// fctiei strtok using namespace std; char sir[]="anul acesta, va fi un bacalaureat foarte usor si vom lua toti nota 10"; char *p; //pointer catre char// declaram separatorii intre cuvinte virgula si spatiu de exemplu char sep[]=", "; int main while (p) {**__cout<<p<<endl;__** } return 0; }
 * //__Ex1. Sa se afiseze cuvintele dintr-un text__//**
 * 1) include
 * 2) include
 * //__{ p=strtok(sir,sep);__//**
 * //__p=strtok(NULL,sep);__//**

Se consideră un text cu maximum 250 de caractere, format din litere mici ale alfabetului englez şi spaţii. Cuvintele sunt separate printr-un singur spaţiu. Scrieţi programul Pascal/C/C++ care citeşte un text ca cel menţionat şi afişează pe ecran acele cuvinte în care vocalele apar în ordine alfabetică (a,e,i,o,u) şi nicio vocală nu se repetă. Exemplu: Pentrul textul vaporul pluteşte pe mare se va afişa vaporul pe mare.(10p.)
 * //Ex.2 .//** **//__prelucrare cuvinte din text__//**

using namespace std; int main { char s[256],*p; cin.get(s,256); while(p) { int vb=1; int k=strlen(p); //putem prelua vocalele in alt cuvant ..sorta..si verifica// sau putem face direct for(int i=0;i=p[j]) vb=0; if(vb) cout<<p<<" "; } return 0; }
 * 1) include
 * 2) include
 * p=strtok(s," ");**
 * p=strtok(NULL," ");**