Você está na página 1de 2

APLICAȚII CU ȘIRURI DE CARACTERE ÎN C

1) Să se realizeze un program care arată diferența dintre 'A' si "A".

#include <stdio.h>
#include <conio.h>
int main() {
char a1 = 'A';
char a2[] = "A";
printf("%c %c %s",a1,a2[0],a2); /* afisam continutul celor doua variabile */
printf("\n%d %d",sizeof(a1),sizeof(a2)); /* verificam memoria ocupata de cele doua
variabile */
printf("\n%s adica %d",a2[1],a2[1]); /* vedem care este cel de-al doilea element din
a2*/
return 0;
}

2) Să se realizeze un program care afișează într-un sir de caractere literele mari ale alfabetului si face
prelucrări asupra acestuia.

#include <stdio.h>
#include <string.h>
int main() {
char a[256];
int i;
for ( i = 0; i < 26; ++i)
a[i] = 'A' + i;
a[i] = '\0';

puts("Sirul de caractere contine:");


printf("\"%s\"", a);

/* dorim ca la sfarsit sa adaugam caracterele '1' si '2' si sa reafisez sirului */


a[26]='1';
a[27]='2';
a[28]=0;
printf("\n\"%s\"",a);

/* afisez numarul de caractere ale sirului */


printf("\nNumarul de caractere este %d", strlen(a));

/* afisez sirul incepand cu al doilea element si pana la al zecelea */


a[10] = '\0'; /* 0 sau NULL */
printf("\n\"%s\"", a + 1); /* !!! nu puneti a++ */
/* afisez sirul incepand cu al 6-lea element si pana la al zecelea */
printf("\n\"%s\"", a + 6);

/* reafisez numarul de caractere ale sirului */


printf("\nNumarul de caractere este %d", strlen(a));

/* pointerul p va retine adresa vectorului (a) */


char *p;
p = a; /* atribuirea a = p este incorecta pt. ca (a) este o data constanta */

/* dupa atribuire putem utiliza (p) in aceleasi conditii ca si (a) */


printf("\n%s", p);

/* patru relatii echivalente de afisare a adresei vectorului */


printf("\n%p", p);
printf("\n%p", a);
printf("\n%p", &p[0]);
printf("\n%p", &a[0]);

/* afisam (a) incepand cu al 2-lea octet al vectorului */


printf("\n%s", ++p); /* p++; printf("\n%s", p); */
printf("\n%s", p++);
/* doua adrese echivalente */
printf("\n%p", p);
printf("\n%p", &a[2]);

/* noul vector se poate adresa si pe octeti */


printf("\n%c", p[0]); /* va afisa elementul 'C' */
printf("\n%c", p[-2]); /* va afisa elementul 'A' */

/* distanta dintre (p) si (a) */


printf("\n%d", p - a);

return 0;
}

3) Diferența între tipul tablou de caractere și tipul pointer pentru memorarea unui șir de caractere.

#include<stdio.h>
#include<string.h>
int main() {
char a[] = "Marea Unire"; /* sir de elemente ca tablou de caractere */
char *b = "Marea Unire"; /* sir de elemente ca pointer (adresa) */
printf("sir de caractere ca tablou de caractere = %s\n\n", a);
printf("sir de caractere ca pointer = %s\n\n\n", b);
printf("Dimensiunea in octeti a lui \"%s\" ca tablou de caractere = %d\n\n", a,
sizeof(a));
printf("Dimensiunea in octeti a lui \"%s\" ca pointer = %d\n", b, sizeof(b));
return 0;
}

Você também pode gostar