Documente Academic
Documente Profesional
Documente Cultură
Aplicatii
Siruri de caractere in
C++
Siruri de caractere in C+
+
Definitie.
Mod de declarare
Citirea unui sir de caractere
Afisarea unui sir de caractere
Functii specifice
Strlen
Strcpy, strncpy
Strcat, strncat
Strcmp, stricmp, strncmp,strnicmp
Aplicatii
\0
10
11
P
0
r
1
r
8
i
9
\0
10
11
12
13
14
Concluzii:
. Pentru memorarea unui sir de caractere compilatorul retine doar adresa de inceput
primului caracter, adresa elementului din pozitia 0.
. Compilatorul adauga in mod automat dupa ultimul caracter din sir, caracterul Null \0
. Un sir de caractere este identificat in mod unic prin adresa de inceput a sirului si
rimul caracter \0 gasit printre octetii urmatori primului caracter.
Functia cin.get()
Forma generala:
Unde:
Functia cin.get()
Forma generala:
cin.get()
Se poate utiliza si fara parametri, iar in acest caz va utiliza o zona intermediara de
memore numita buffer, pentru a elimina din sirul dat la intrare caracterele care nu
se doresc a fi citite.
Exemplu: fie urmatoarea secventa:
char s[50];
cin.get(s,50,*);
cin.get();
Daca de la tastatura se introduce textul :Examen*de*Bacalaureat efectul acestei
secvente va fi urmatorul:
- sirul s va contine sirul Examen, deci s-au citit caractere pana la prima
aparitie a caracterului * din text, restul, adica sirul *de*Bacalaureat se vor
sterge din buffer-ul de intrare.
Funcia strlen returneaz numrul de caractere a irului care ncepe la adresa s (primit ca parametru), fr a numra
int strlen (char *s)
caracterul \0.
Functii specifice
1.LUNGIMEA UNUI SIR DE CARACTERE
s:
s:
\0
10
11
s+0
I
\0
10
11
s+3
Functii specifice
2.COPIEREA SIRURILOR DE CARACTERE
a.
char
Functia STRNCPY copie peste sirul d(destinatie) n caractere din sirul s(sursa),
copierea se va incheia aunci cand a terminat de copiat in d si marcatorul de sfarsit
de sir \0 din s. Functia va returna adresa de inceput a sirului d.
Observatie: daca valoarea lui n este mai mare decat sirul s, atunci vor fi copiate
toate caractele din s inclusiv \0.
Functii specifice
Exemplu 1 STRCPY:
#include<iostream.h>
#include<string.h>
void main()
{ char a[100]=crocodil,b[100]=hipopotam;
strcpy(a,b);
cout<<sirul a: <<a<<endl; //hipopotam
cout<<sirul b: <<b<<endl; //hipopotam
}
Exemplu 2 STRNCPY:
#include<iostream.h>
#include<string.h>
void main()
{ char a[100]=crocodil,b[100]=hipopotam;
strncpy(a,b,4);
cout<<sirul a: <<a<<endl; //hipo
cout<<sirul b: <<b<<endl; //hipopotam
}
Functii specifice
3.CONCATENAREA SIRURILOR DE CARACTERE
a.
Functia STRNCAT concateneaza primele n caractere din sirul s la sirul d. Daca sirul
s are mai putine caractere decat n, atunci se vor lipi toate caracterele sirului s la d,
inclusiv \0. Functia returneaza adresa de inceput a sirului d.
Functii specifice
Exemplu:
#include<iostream.h>
#include<string.h>
void main()
{ char a[100]=Vine_,b[100]=Bacalaureatul;
strcat(a,b);
cout<<sirul a: <<a<<endl; //Vine_Bacalaureatul
cout<<sirul b: <<b<<endl; //Bacalaureatul
}
Exemplu:
#include<iostream.h>
#include<string.h>
void main()
{ char a[100]=Vine_ ,b[100]=Bacalaureatul;
strncat(a,b,3);
cout<<sirul a: <<a<<endl; //Vine_Bac
cout<<sirul b: <<b<<endl; //Bacalaureatul
}
Functii specifice
4.COMPARAREA SIRURILOR DE CARACTERE
a.
Functii specifice
Exemplu:
#include<string.h>
#include<stdio.h>
void main()
{ char a[100]=MAMA,b[100]=ABRACADABRA;
int k=strcmp(a,b);
if (k>0)
cout<<a>b; //afiseaza a>b, se compara lexicografic sirurile
else
if (k==0)
cout<<a=b;
else
cout<<a<b;
}
Functii specifice
4.COMPARAREA SIRURILOR DE CARACTERE
c.
d.
Functii specifice
5.INVERSAREA UNUI SIR DE CARACTERE
Functii specifice
7. CAUTAREA UNUI CARACTER INTR-UN SIR DE CARACTERE
a.
Functii specifice
8. CAUTAREA UNUI SIR INTR-UN SIR DE CARACTERE
Functia STRUPR transforma toate literele mici din sirul s in litere mari. Functia va
returna un pointer la sirul s. Functia STRLWR are efectul invers functiei STRUPR.
b.
Functii specifice
10. INLOCUIREA CARACTERLOR DINTR-UN SIR
a.
Functii specifice
11. DESPARTIREA UNUI SIR IN SUBSIRURI
Functii specifice
Forma generala de separare a unui ir s n subiruri, n funcie de anumite
caractere separator memorate n irul d:
# include <string.h>
void main ()
{
char s[200];
// irul care va fi desprit
char d[]=",. "; // irul care conine separatorii
char *p;
// pointer cruia i se va atribui adresa subirurilor
gsite
cin.get (s, 200);
p= strtok (s,d);
// primul apel
while (p)
{
cout << endl << p;
// prelucrarea subirurilor gsite
p=strtok (NULL, d); // apelurile 2, 3,
}
}
Functii specifice
12. CAUTAREA UNEI SECVENTE DE CARACTERE CONSECUTIVE
a.
Functii specifice
13. FUNCTII DE CONVERSIE A SIRURILOR DE CARACTERE
a.
b.
Functii specifice
13. FUNCTII DE CONVERSIE A SIRURILOR DE CARACTERE
c.
e.