Documente Academic
Documente Profesional
Documente Cultură
Siruri de Caractere
codurile ASCII ale literelor mari (sau mici) sunt în ordine: 'A' are codul 65, 'B' are
codul 66, .. , 'Z' are codul 90. Două caractere consecutive în alfabet au coduri ASCII
consecutive! De asemenea, litera 'a' are codul 97, etc.
codurile ASCII ale literelor mici sunt mai mari decât codurile ASCII ale literelor
mari ('a' > 'Z') și diferență între codurile ASCII a două litere (mică – mare) este 32.
cifrele au coduri consecutive: caracterul '0' are codul 48, caracterul '1' are codul
49, etc. *Observăm că caracterul '0' nu are codul ASCII 0, ci 48.
caracterul spațiu este un caracter imprimabil. Spațiul are codul ASCII 32
cin >> s;
În acest mod, datorită specificului operatorului >> nu se pot citi șiruri care conțin spații – se
vor citi caracterele până la primul spațiu, fără acesta.
Returnează lungimea șirului str, adică numărul de caractere din șirul al cărui prim caracter
se află la adresa memorată în str. Caracterul nul nu se numără.
Copiază cel mult count caractere din șirul aflat la adresa src, în șirul al cărui prim element
se află la adresa din dest.
char s[100]="abcdefghjkl";
strncpy(s, "poveste", 3);
cout << s; // povdefghjkl
Pointeri
#include <iostream>
int main(){
char * p , s[]="pbinfo";
cout << s << endl; // pbinfo
p = s;
cout << p << endl; // pbinfo
p ++;
cout << p << endl; // binfo
return 0;
}
Caută caracterul ch în șirul al cărui prim caracter se află în memorie la adresa din str.
Funcția returnează adresa NULL, dacă caracterul ch nu apare în șirul str, respectiva adresa
primei apariții al lui ch în str, dacă ch apare în str.
char s[21]="pbinfo";
char * p = strchr(s , 'i');
cout << p; // info
Caută șirul t în șirul al cărui prim caracter se află în memorie la adresa din s. Funcția
returnează adresa NULL, dacă șirul t nu apare în șirul s, respectiva adresa primei apariții al
lui t în s, dacă t apare în s.
char s[21]="pbinfo";
char * p = strstr(s , "inf");
cout << p; // info
int strcmp( char * s, char * t );
fie un vector X[] cu n elemente;
plasăm în X[0] cea mai mică valoare din vector;
plasăm în X[1] cea mai mică valoare rămasă;
etc.
fie un vector X[] cu n elemente
parcurgem vectorul și pentru oricare două elemente învecinate care nu sunt în
ordinea dorită, le interschimbăm valorile
după o singură parcurgere, vectorul nu se va sorta, dar putem repeta parcurgerea
dacă la o parcurgere nu se face nicio interschimbare, vectorul este sortat
fie un vector X[] cu n elemente;
dacă secvența cu indici 0, 1, …, i-1 este ordonată, atunci putem insera
elementul X[i] în această secvență astfel încât să fie ordonată secvența cu
indici 0, 1, …, i-1, i.
luăm pe rând fiecare element X[i] și îl inserăm în secvența din stânga sa
la final întreg vectorul va fi ordonat
int n, X[100];
//citire X[] cu n elemente
for(int i = 1 ; i < n ; i ++)
{
int x = a[i];
int p = i - 1;
while(p >= 0 && a[p] > x)
a[p + 1] = a[p], p --;
a[p + 1] = x;
}
Sortarea prin numarare
for
int k = 0;
for (int i = 0; i < MAX; i++)
while (frq[i]--)
v[++k] = i;
Cautare Binara
Backtracking
void afisare()
{...}
int valid(int k)
{...
return 0;
return 1;}
void BK(int k)
{int i;
for (i=1; i<=n; i++)
{v[k]=i;
if (valid(k)==1)
{if (k==n)
afisare();
else
BK(k+1);
}}}
int main()