220 likes | 528 Views
Algoritmi pentru prelucrarea şirurilor de caractere. Prelucrarea a două şiruri de caractere Prelucrarea subşirurilor de caractere Conversii între tipul şir de caractere şi tipuri numerice Prelucrarea unui şir de caractere. Prelucrarea a două şiruri de caractere.
E N D
Algoritmi pentru prelucrarea şirurilor de caractere Prelucrarea a două şiruri de caractere Prelucrarea subşirurilor de caractere Conversii între tipul şir de caractere şi tipuri numerice Prelucrarea unui şir de caractere
Prelucrarea a două şiruri de caractere • Copierea unui şir de caractere intr-un alt şir de caractere • Concatenarea a două şiruri de caractere • Compararea a două şiruri de caractere
Prelucrarea unui şir de caractere • Iniţializarea unui şir de caractere cu acelaşi caracter • Inversarea conţinutului unui şir de caractere • Transformări între literele mari şi literele mici din şir • Căutarea unui caracter intr-un şir • Aplicatii
Prelucrarea subşirurilor de caractere • Extragerea unui subşir dintr-un şir • Căutarea unui subşir într-un şir • Ştergerea unui subşir dintr-un şir • Inserarea unui subşir într-un şir • Înlocuireaunui subşir cu un alt şir
Conversii între tipul şir de caractere şi tipuri numerice • Conversia unui şir de caractere într-un număr • Conversia unui număr în şir de caractere
Copierea unui şir de caractere într-un alt şir de caractere Exemplu: char a[100]=“un şir”, b[100]=“alt şir”; strcpy(a,b); cout<<a; şirul a va fi =“alt şir” la fel ca şirul b=“alt şir” Obs: această copiere simulează atribuirea a=b
Concatenarea a două şiruri de caractere Exemplu: char a[100]=“un şir”, b[100]=“alt şir”; strcat(a,b); cout<<a; şirul a va fi =“un şir alt şir”
Compararea a două şiruri de caractere Exemplu: char a[100]=“tata”, b[100]=“mama”; strcmp(a,b); se obţine o valoare pozitivă deoarece “tata”>”mama”
Iniţializarea unui şir de caractere cu acelaşi caracter Exemplu: char a[100]=“acesta este un sir”; caracterul de umplere este: ch=‘#’ strset(a,ch); sirul a devine: ##################
Inversarea conţinutului unui şir de caractere char a[100]=“acesta este un sir”; strrev(a); sirul a devine: “ris nu etse atseca”
Transformări între literele mari şi literele mici din şir char a[100]=“aceSta este Un Sir”; strlwr(a); sirul a devine: “acesta este un sir” strupr(b); sirul a devine: “ACESTA ESTE ALT SIR”
Căutarea unui caracter într-un şir char a[25]=“este un sir”; ch=‘s’; strchr(a,ch); prima aparitie a caracterului s este în pozitia 2 strrchr(a,ch); ultima aparitie a caracterului s este în pozitia 9
Aplicatii • Ce se afişează pe ecran în urma executării secvenţei de program alăturare ştiind că variabila i este de tip char? for(i=‘a’;i<=‘z’;i++) if( strchr(“info”,i)) cout<<i; • Să se scrie un program care va schimba un text citit de la tastatură în litere mari. • Sa se scrie un program care verifică dacă un cuvânt, citit de la tastatură, este identic cu inversul lui.
Conversia unui şir de caractere într-un număr La utilizarea acestor funcţii se introduce directiva #include<stdlib.h> Funcţia atof() - converteşte un şir către tipul double double atof( sir); Funcţia atoi() - converteşte un şir către tipul int int atoi( sir); Funcţia atol() - converteşte un şir către tipul long long atol( sir); Dacă conversia eşuează (se întâlneşte un caracter nenumeric) valoarea întoarsă este 0. Dacă primele caractere ale şirului sunt albe, acestea sunt ignorate
Conversia unui număr în şir de caractere La utilizarea acestor funcţii se introduce directiva #include<stdlib.h> Funcţia ecvt() - converteşte o valoare detip double către un şir ecvt( double nr, int poz,int zec, int semn); Funcţia itoa() - converteşte o valoare de tip întreg către un şir itoa(int nr, sir, int baza); Funcţia ltoa() - converteşte o valoare de tip long int către un şir ltoa(long nr,sir ,int baza);
Funcţia itoa() Funcţia itoa() are rolul de a converti o valoare de tip int într-un şir, a cărui adresă este memorată în variabila şir. Valoarea baza reţine baza de numeraţie către care să se facă conversia. În cazul bazei 10, şirul obţinut reţine şi, eventual, semnul “-”. Funcţia întoarce adresa şirului obţinut.
Aplicaţii 1. #include <iostream.h> 3.#include<iostream.h> #include <stdlib.h> char i; void main() void main() { float f; { for(i=‘a’;i<=‘z’;i++) char sir[30] ="12345.674"; cout<<i<<“ “<<(int)i; f = atof(sir); cout<<endl; cout<<"sirul =“ <<sir<<endl; for(i=‘A’;i<=‘Z’;i++) cout<<“numarul = "<< f; cout<<i<<“ “<<(int)i; } cout<<endl; for(i=‘1’;i<=‘9’;i++) 2.#include <stdlib.h> cout<<i<<“ “<<(int)i<<endl; #include <iostream.h> } void main() { int n; char sir = "12345.674"; n = atoi(sir); cout<<"sirul = "<<sir<<endl; cout<<“numarul = "<< n; }
Aplicaţii Ce afişează secvenţa următoare? int n,n1; char s1[10]=“012”,s2[10],s3[10]; n=atoi(s1); itoa(n,s2,10); strcat(s1,s2); cout<<s1<<“ “; n1=s1[1]+s1[2]; itoa(n1,s3,10); strcat(s1,s3); cout<<s1;