algoritmi pentru prelucrarea şirurilor de caractere
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Algoritmi pentru prelucrarea şirurilor de
caractere1. Prelucrarea a două şiruri de caractere2. Prelucrarea subşirurilor de caractere3. Conversii între tipul şir de caractere şi tipuri n
umerice4. 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 Înlocuirea unui 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 car
actere
Copierea unui şir de caractere într-un alt şir de caractere
strcpy() strcpy(s2,s1) se copie şirul sursă s1 peste şirul s2, inlocuindu-l
strncpy()
strncpy(s2,s1,n)
sunt copiate din şirul sursă s1 maxim n caractere ,începând cu primul caracter
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
strcat() strcat(s1,s2) se adaugă la sfârşitul şirului s1 conţinutul şirului s2 inclusiv caracterul NULL
strncat()
strncat(s1,s2,n)
se adaugă din şirul sursă s2 în şirul destinaţie s1 maxim n caractere ,începând cu primul caracterExemplu:
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
strcmp() strcmp(s1,s2) se compară s1 cu s2;dacă s1=s2, rezultatul este 0;dacă s1>s2 rezultatul este pozitiv;dacă s1<s2 rezultatul este negativ;se face diferenţă între literele mari şi mici
stricmp() stricmp(s1,s2) compară cele 2 şiruri de caractere fără să facă diferenţa între literele mari şi mici
strncmp() strncmp(s1,s2,n)
compară primele n caractere din cele 2 şiruri, furnizând rezultatul la fel ca şi funcţia strcmp()
strncmpi()
strncmpi(s1,s2,n)
compară cele 2 şiruri de caractere la fel ca şi funcţia strncmp(),dar fără să facă diferenţa între literele mari şi literele mici
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
caracterstrset() strset(şir,ch) şirul este parcurs începând cu primul
caracter, până la sfârşitul lui, fiecare caracter fiind înlocuit cu caracterul ch,mai puţin caracterul NULL
strnset()
strnset(şir,ch,n)
sunt parcurse primele n caractere, începând cu primul caracter, dar nu mai mult decât lungimea şirului, fiecare caracter fiind înlocuit cu caracterul ch. Dacă n este mai mare sau egal cu lungimea şirului, funcţia va avea acelaşi efect ca şi strset().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
strrev()
strrev(şir) se inversează şirul şir
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
strlwr() strlwr(şir) se transformă în şir literele mari în litere mici. Restul caracterelor nu sunt modificate.
strupr() strupr(şir) se transformă în şir literele mici în litere mari. Restul caracterelor nu sunt modificate.
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
strchr() strchr(şir,ch)
ne furnizeaza adresa de început a primei aparitii a caracterului ch în şirul de caractere sir( cea din extremitatea stanga),iar în cazul în care ch nu se găseşte în şir întoarce valoarea NULL
strrchr()
strrchr(şir,ch)
ne furnizeaza adresa de început a ultimei aparitii a caracterului ch in sirul de caractere sir( cea din extremitatea dreapta)
char a[25]=“este un sir”;ch=‘s’; strchr(a,ch); prima aparitie a caracterului s este în pozitia 2strrchr(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.
Căutarea unui subşir într-un şir
strstr() strstr(şir, sb) se furnizează prima poziţie din care începe în şirul şir un subşir sb
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 Dacă conversia eşuează (se întâlneşte un caracter nenumeric) valoarea întoarsă este 0. Dacă primele nenumeric) valoarea întoarsă este 0. Dacă primele caractere ale şirului sunt albe, acestea sunt ignoratecaractere 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 de tip 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 şiritoa(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ţii1. #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ţiiCe 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;