Acest curs abordează manipularea șirurilor de caractere, utilizarea structurilor și uniunilor, operațiile cu fișiere și aspecte avansate ale limbajului C.
Șirurile de caractere în C sunt reprezentate prin tablouri de caractere terminate cu caracterul '\0'.
#include <stdio.h>
int main() {
char sir1[] = "Salut";
char sir2[10] = "C";
printf("%s %s\n", sir1, sir2);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char s1[20] = "Hello";
char s2[] = " World";
strcat(s1, s2); // Concatenare
printf("%s\n", s1);
printf("Lungimea sirului: %lu\n", strlen(s1)); // Lungime
return 0;
}
Structurile și uniunile sunt utilizate pentru a grupa mai multe variabile sub un singur nume.
#include <stdio.h>
struct Student {
char nume[50];
int varsta;
};
int main() {
struct Student s = {"Alex", 21};
printf("Student: %s, Varsta: %d\n", s.nume, s.varsta);
return 0;
}
Uniunile sunt similare cu structurile, dar toate variabilele ocupă aceeași zonă de memorie.
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data d;
d.i = 10;
printf("Valoare int: %d\n", d.i);
d.f = 5.5;
printf("Valoare float: %f\n", d.f);
return 0;
}
Fișierele pot fi accesate în C folosind `fopen`, `fprintf`, `fscanf`, `fclose`.
#include <stdio.h>
int main() {
FILE *f = fopen("test.txt", "w");
fprintf(f, "Text salvat in fisier\n");
fclose(f);
return 0;
}
#include <stdio.h>
int main() {
FILE *f = fopen("test.txt", "r");
char buffer[100];
fgets(buffer, 100, f);
printf("Citit: %s\n", buffer);
fclose(f);
return 0;
}
În C, un program poate primi argumente prin linia de comandă.
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Numar argumente: %d\n", argc);
for (int i = 0; i < argc; i++) {
printf("Arg %d: %s\n", i, argv[i]);
}
return 0;
}
Preprocesorul C este responsabil pentru interpretarea directivelor `#define`, `#include` și altele.
#include <stdio.h>
#define PI 3.14159
int main() {
printf("Valoare PI: %f\n", PI);
return 0;
}
Limbajul C permite definirea funcțiilor care pot accepta un număr variabil de argumente folosind `stdarg.h`.
#include <stdio.h>
#include <stdarg.h>
void afiseaza(int n, ...) {
va_list args;
va_start(args, n);
for (int i = 0; i < n; i++) {
printf("%d ", va_arg(args, int));
}
va_end(args);
printf("\n");
}
int main() {
afiseaza(3, 10, 20, 30);
return 0;
}