Documente Academic
Documente Profesional
Documente Cultură
TABLOURI
Cuprins Pagina
Test de autoevaluare 8
Recapitulare 10
1
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Tablouri
Exemplu:
char tc[5] = {’a’, ’b’, ’c’, ’d’, ’e’};
char sc[5] = {’a’, ’b’, ’c’, ’d’, ’\0’};
char sc1[5] = ”abcd”;
char s[10];
cout<<sc<<’\n’; //afişează abcd
cout<<tc<<’\n’;
//eroare: tabloul de caractere nu conţine terminatorul de şir, deci nu poate fi
afişat ca şir
cout<<s<<’\n’; // eroare: tablou neiniţializat
cout<<sc1[2]; // afişează al treilea element din şirul sc1
sc1[1]=’K’; // elementului din şir de indice 1 i se atribuie valoarea ‘K’;
2
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Tablouri
Nr. Efect
Funcţia
Crt.
Citeşte caractere de la tastatură şi le înscrie în şirul s, până
1 gets(s); întâlneşte caracterul ’\n’. Acest caracterul nu este înscris în
s, dar se adaugă terminatorul ’\0’.
2 puts(s); Afişează şirul s pe ecran şi trece la linie nouă.
3 strcpy(s1, s2); Copiază şirul s2 în şirul s1.
Copiază primele n caractere din şirul s2 în şirul s1 (pe
4 strncpy(s1, s2, n);
poziţia n, trebuie adăugat după copiere terminatorul ’\0’.
5 strcat(s1, s2); Adaugă şirul s2 la sfârşitul şirului s1.
Adaugă cel mult n caractere din şirul s2 la sfârşitul şirului
6 strncat(s1, s2, n);
s1.
În şirul s, caracterele litere mici sunt înlocuite cu caractere
7 strupr(s);
litere mari.
În şirul s, caracterele litere mari sunt înlocuite cu caractere
8 strlwr(s);
litere mici.
Inversează toate caracterele şirului s, exceptând
9 strrev(s);
terminatorul’\0’.
10 strset(s,c); În şirul s, toate caracterele sunt înlocuite cu caracterul c.
În şirul s, primele n caracterele sunt înlocuite cu caracterul
11 strnset(s,c,n);
c. Operaţia se încheie, dacă este întâlnit terminatorul’\0’.
12 strlen(s); Returnează lungimea şirului s.
Compară succesiv codurile ASCII ale celor două şiruri.
Returnează valoarea 0 dacă sunt identice, o valoare pozitivă
13 strcmp(s1, s2); dacă s1[k]>s2[k]; o valoare negativă dacă s1[k]<s2[k], unde
k este indicele unde apare prima diferenţă între caracterele
şirurilor.
strcimp(s1, s2); sau Idem strcmp, fără a face deosebire între literele mari şi
14
strcmpi(s1, s2); mici.
Idem strcmp, dar compară numai primelor n caractere ale
15 strncmp(s1, s2,n);
celor două şiruri
Idem strcmp, dar compară numai primelor n caractere ale
strncmpi(s1, s2,n); sau
16 celor două şiruri, fără a face deosebire între literele mari şi
strnicmp(s1, s2,n);
mici.
Returnează un pointer la prima apariţie a caracterului c în
17 strchr(s, c);
şirul s. Când caracterul nu este găsit, se returnează NULL
Returnează un pointer la ultima apariţie a caracterului c în
18 strrchr(s, c);
şirul s. Când caracterul nu este găsit, se returnează NULL
Returnează un pointer la prima apariţie a şirului s2 în şirul
18 strstr(s1, s2);
s1. Când şirul s2 nu este găsit, se returnează NULL
3
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Tablouri
Exemplu:
#include <iostream.h>
#include <string.h>
void main()
{
char sir1[] = ”abcd”, sir2[] = ”abcde”, sir3 = "abcdef”, sir4 =
"de”;
cout<<strcmp(sir1, sir2)<<’\n’; // afişare: -101
// ’e’ = 101, ’a’ = 97, ’d’ = 100
//’0’ - ’e’ = -101
cout<<strcmp(sir2, sir1)<<’\n’; //afişare: 101
cout<<strcmp(sir1, "")<<’ '; //compararea variabilei sir1 cu constanta şir
vid
char str1[20]=”hello”;
char str2[20]=”goodbye”;
char str3[20];
int difer, lungime;
cout<<”str1=”<<str1<<” str2=”<<str2<<’\n’;
difer=strcmp(str1, str2);
if (difer == 0)
cout<<”Siruri echivalente!\n”;
else if (difer>0)
cout<<str1<<” mai mare (lexicografic) decât
“<<str2<<’\n’;
else
cout<<str1<<” mai mic (lexicografic) decât “<<str2<<’\n’;
cout<<”str1=”<<str1<<’\n’; cout<<”str3=”<<str3<<’\n’;
strcpy (str3, str1); cout<<”str1=”<<str1<<’\n’;
cout<<”str3=”<<str3<<’\n’;
strcat (str3, str1);
cout<<”str1=”<<str1<<’\n’;
cout<<”str3=”<<str3<<’\n’;
}
Test de autoevaluare 12
4
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Tablouri
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
void main(){ clrscr( );
char s[100],c;
int i;
cout<<"dati sirul:"; cin.getline(s,100);
for (i=0;i<=strlen(s);i++) s[i]=toupper(s[i]);
cout<<s;
getch(); }
xy ( x(
2
xy x y) y ) 2
5
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Tablouri
2. #include <iostream.h>
#include <conio.h>
#include <string.h>
void main(){ clrscr( );
char c, s[100];
cout<<"dati sirul:"; cin.getline(s,100);
cout<<"dati caracterul:"; cin>>c;
for (i=0;i<=strlen(s)-1;i++)
if (c==s[i]) cout<<i<<” ”;
getch(); }
Recapitulare
Bibliografie
6
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii