Sunteți pe pagina 1din 3

iruri de caractere

zona de procesare: castring=biblioteca care gestioneaza functii ce prelucreaza


siruri de caractere
tipul de tablou:
char s[dim];
char*sir;
s=vector cu maxim 10 000 de caractere
sir=sir cu o lungime variabila si in sir retin adresa de la inceput
-spatiu de memorie ocupat=sizeof(char)*dim=1*dim=dim
-structura omogeana=toate elementele sunt de acelasi tip=char
-s=numele taboului de caractere=adresa la care incepe sirul de caractere
-s[i]=caracterul de pe pozitia i, pot retine doar prin s tot sirul
-`a`=un caracter=>1 octet
-a=un sir de caractere=>retin 2 octeti, 1 octet pt a si un octet pt sfarsitul de sir
-`\0`=caracterul ce da sfarsitul de sir
-tip de dare special pentru sirurile de caractere size_t=unsigned short int
-sirul se initializeaza in pozitia 0
1. Citirea sirurilor de caractere
1.1Tastatura
cin>>s;
=citirea sirurilor pana la aparitia Space sau Enter
=Introduc:Ana are mere=>s=A;
cin.get(sir,dim);
=cin.get(s,10000); citirea pana la Enter
=introduce Ana are mere=>s=Ana are mere;
1.2Fisier
f>>s;
f.get(s.dim);

2.Afisarea sirurilor de caractere


2.1 Monitor
cout<<s;
2.2 Fisier
g<<s;

FUNCTII CARE PRELUCREAZA SIRURI DE CARACTERE


1.Functii de copiere
char*strcpy(char*dest, const char*sursa);
char*strncopy(char*dest,const char*sursa, size_t lung);
- strcpy, strncpyn copiaza sirul in sursa(primul parametru) ,s irul destinate(al
doilea parametru),cele doua siruri vor fi identice la finalul apelului

-strncpy copiaza in dest primele lung caractere din sirul sursa

Ex
char s[1000],d[1000];
s=informatica;
strcpy(d,s)
=>d=nformatica
strncpy(d,s,4)
=>d=info;
-Functia copiere poate fi folosita si pt stergerea caracterelor din sir
i
n
f
o
r
m
a
t
i
c
a
s+3
s+7
s
strcpy(s,s+i)=>se muta adresa la inceput peste i caractere =>efect=stergerea
primelor i caractere
strcpy(s+i,s+j) j>i=>efect=eliminarea din sirul s a caracterelor de pe pozitiile
i,i+1,i+2,,i+j-1
strcpy(s,s+5)=>s=matica
strcpy(s+3,s+7)=>s=inftica;
2.Functii de concatenare
char*strcat(char*dest, const char*sursa);
char*strncat(char*dest,const char*sursa, size_t lung);
Ex
char s[100],d[100];
strcpy(s,Cocos);
strcpy(d,Luca);
strcat(s,);
strcat(s,d); =>s=Cocos Luca;
3.Functii de comparare
= a comapara 2 siruri de caractere-ordine lexicografica(din dictionar);
-x si y=>exista o pozitie i astfel incat x[i]<y[i] (caractere comparate prin codul
ASCII) si oricare j<i=>x[j]=y[j];
int strcmp(const char*s1,const char*s2)
int strncmm(const char*s1,const char*s2, size_t lung)
int stricmp(const char*s1,cont char*s2)
int strnicpm(const char*s1,const char*s2,size_t_lung)
rezultat returnat
>0 s1>s2 lexicografic
<0 s1<s2
==0 s1==s2 identice
strcpm=compararea cu diferente intre litere mari si mici
strncmp=compararea pe primele lung caractere cu diferenta intre cele mari si
mici
stricmp=strcmp fara a face diferenta intre litere mari si mici a=A
strnicmp=strncmp fara a afce diferenta intre litere mari si mici a=A
Ex

char s1[100],s2[100];
s1=abcdf;
s2=AbCD;
strcmp(s1,s2)>0 A=65 a=97
stricmp(s1,s2)>s0 s1 are mai multe caractere
strncmp(s1,s2,s3)>0
strnicmp(s1,s2,s3)==0
4.Functia d elungime a sirului de caractere
size_t strlen(const char*s)

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