a IX-a A27 lecții INFORMATICĂ | 30 lecții T.I.C.
Informatică
Lectia 00001   |   Lectia 00   |   Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 101   |   Lectia 102   |   Lectia 103   |   Lectia 11   |   Lectia 11_2   |   Lectia 12   |   Lectia 12_2   |   Lectia 12_3   |   Lectia 12_4   |   Lectia 12_5   |   Lectia 13   |   Lectia 14   |   Lectia 17
Lectia 18   |   Lectia 19
T.I.C.

Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09
Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14   |   Lectia 15   |   Lectia 16   |   Lectia 17   |   Lectia 18   |   Lectia 19   |   Lectia 19   |   Lectia 20   |   Lectia 23   |   Lectia 24   |   Lectia 26   |   Lectia 27   |   Lectia 28   |   Lectia 29   |   Lectia 30_2   |   Lectia 31   |   Lectia 32
a IX-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a C0 lecții INFORMATICĂ | 26 lecții T.I.C.
T.I.C.
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08
Lectia 10   |   Lectia 12   |   Lectia 13   |   Lectia 14   |   Lectia 15   |   Lectia 16   |   Lectia 17   |   Lecția 18   |   Lectia 19   |   Lectia 20   |   Lectia 21   |   Lectia 22   |   Lectia 23   |   Lectia 24   |   Lectia 25   |   Lectia 26   |   Lectia 27   |   Lectia 28
a IX-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a A6 lecții INFORMATICĂ | 22 lecții T.I.C.
Opțional
Fișa 01   |   Fișa 02   |   Fișa 03   |   Fișa 04   |   Fișa 05   |   Lectia 20
T.I.C.

Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lecția 14_1
Lectia 15
Lectia 16   |   Lectia 17   |   Lectia 19   |   Lectia 20
Lectia 21   |   Lecția 22   |   Lectia 23   |   Lectia 24   |   Lectia 25   |   Lectia 26   |   Lectia 27   |   Lectia 28
a X-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a A30 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lectia 16   |   Lectia 18   |   Lectia 19   |   Lectia 20
Lectia 20 --- [ Teorie + 2 Probleme rezolvate ]

FUNCȚII PENTRU OPERAȚII CU ȘIRURI DE CARACTERE

Functiile pentru operatii cu siruri se gasesc in header-ul .

Ø Functia strlen

int strlen (nume_sir); returneaza lungimea efectiva a unui sir (fara a numara terminatorul de sir).

Exemplu:

char a[50]=”ora de informatica”;  =>   strlen(a) = 18

Ø Functia strcpy

strcpy(sir_destinatie,sir_sursa); copiaza sirul sir_ sursa in sir_destinatie (se simuleaza atribuirea a=b).

ATENTIE!! Nu este permisa atribuirea intre doua siruri de caractere folosind operatorul = . Atribuirea se  face folosind functia strcpy .

Exemplu:

char a[50]=”primul sir”,b[40]=”al doilea sir”;

a=b;  //eroare

strcpy(a,b);  =>     a = ”al doilea sir”; b=”al doilea sir”;

 

Ø Functia strcat

strcat(dest,sursa); adauga sirului dest sirul sursa. Sirul sursa ramane nemodificat. Operatia se numeste concatenare si nu este comutativa.

Exemplu:

char *a=”vine ”,*b=”vacanta?”; strcat(a,b);   =>  a = ”vine vacanta?”;

 

Ø Functia strncat

strncat(dest,sursa,nr); adauga dest primele nr caractere din sirul sursa. Sirul sursa ramane

1                            nemodificat.

Exemplu:

char *a=”vine ”,*b=”vacanta?”; strncat(a,b,4); =>  a = ”vine vaca”;

 

Ø Functia strchr

strchr(sir,c); are rolul de a cauta caracterul c in sirul sir. Cautarea se face de la stanga la dreapta, iar functia intoarce adresa subsirului care incepe cu prima aparitie a caracterului c. Daca nu este gasit caracterul, functia returneaza 0. Diferenta dintre adresa sirului initial si cea a subsirului returnat reprezinta chiar pozitia caracterului cautat in sirul dat.

Exemplu:

char *a=”acesta este un sir”, b=’t’, c=’x’, *d;      

                        cout<<strchr(a, b);  =>       se tipareste   ”ta este un sir”;

cout<<strchr(a, c); => nu se tipareste nimic (se tipareste 0 daca se face o conversie la int a lui strchr(a,c) ;

d= strchr(a,b);

cout<<”Caracterul apare prima data la pozitia ”<<a-d;

 

Ex: Sa se afiseze toate pozitiile unui caracter intr-un sir

#include

#include using namespace std; int main()

{char a[100],*p,c;

cin.get(a,100); cin>>c; p=strchr(a,c); while (p)

{cout<<"Pozitia "< < a - p;

p=strchr(p,c);}

return 0;}

Ø Functia strrchr

                     strrchr(sir,c); are acelasi rol cu strchr, cu deosebirea ca returneaza adresa ultimei aparitii a caracterului (cautarea se face de la dreapta spre stanga; r = right)

                       Ø Functia st rcmp

int strcmp(sir1,sir2); are rolul de a compara doua siruri de caract ere. Valoarea returnata este <0 (daca sir1< sir2), =0 (daca sir1=sir2) si >0 (daca sir1>sir2). Functia strcmp  face distinctie intre literele mari si cele mici ale alfabetului.

Obs : Functia strcmp returneaza diferenta dintre codurile ASC II ale primelor caractere care nu coincid

1. Sa se scrie un program C++ care citeste un sir de caractere. Sa se stearga din sir toate cuvintele care incep si se termina cu o vocala.
Propune o soluție

S
o
l
u
ț
i
a:
Introdu următorul text: 289132229
#include<iostream>
#include<string.h>
using namespace std;
char sir[256];
int j;
int vocale(char x){
    if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u')
        return 1;
else
return 0;
}
int main()
{
cout<<"Sirul ";
cin.get(sir,256);
cin.get();
for (int i=1; i<strlen(sir);i++)
{
    if(sir[i-1]==' ' && vocale(sir[i]))
    {
       j=i;
       while (j<strlen(sir) && sir[j]!=' ')
            j++;
       if(vocale(sir[j-1]))
        strcpy(sir+i,sir+j);
    }

}
cout<<sir;
return 0;
}
2. Sa se scrie un program C++ care citeste un sir de caractere si numara cate dintre caracterele sirului sunt litere mari si se gasesc intr-un cuvant care incepe si se termina cu o vocala. Determinati si numarul de vocale care apartine unui cuvant format din numar par de caractere.
Propune o soluție

S
o
l
u
ț
i
a:
Introdu următorul text: 226575980
#include<iostream>
#include<string.h>
using namespace std;
char sir[256], *p;
int j;
int vocale(char x){
    if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u')
        return 1;
else
return 0;
}
int literemari(char x[200])
{
    int nr=0;
    for (int i=0; i<strlen(x); i++)
        if (x[i]>='A' && x[i]<='Z')
            nr++;
    return nr;
}
int main()
{
int cerinta1, cerinta2;
cerinta1=cerinta2=0;
cout<<"Sirul ";
cin.get(sir,256);
cin.get();
p=strtok(sir, " ");
while(p)
{
    if(vocale(p[0]) && vocale(p[strlen(p)-1]))
        cerinta1=cerinta1+literemari(p);
    if(strlen(p)%2==0)
            for (int i=0; i<strlen(p); i++)
                if (vocale(p[i]))
                   cerinta2++;
    p=strtok(NULL, " ");
}

cout<<cerinta1<<" "<<cerinta2;
return 0;
}

Fii primul care comentează lecţia
     Submit
  |   Lectia 21
Lectia 23   |   Lectia 24
Lectia 36
Lectia 40   |   Lectia 41   |   Lectia 42   |   Lectia 43   |   Lectia 44   |   Lectia 45   |   Lectia 46   |   Lectia 46_1
Lectia 47   |   Lectia 48   |   Lectia 49   |   Lectia 50   |   Lectia 50_1
Lectia 50_2
a XI-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a D0 lecții INFORMATICĂ | 14 lecții T.I.C.
T.I.C.
Fişa 01   |   Fişa 02   |   Fişa 03   |   Fişa 04   |   Fişa 05   |   Fişa 06   |   Fişa 07
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07
a XI-a E0 lecții INFORMATICĂ | 1 lecții T.I.C.
T.I.C.
Fişa 01
a XII-a A2 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 01   |   Lectia 02
a XII-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
Excelenta A0 lecții INFORMATICĂ | 0 lecții T.I.C.