Sunteți pe pagina 1din 7

Ministerul Educaţiei

al Republicii Moldova

Universitatea Tehnică a Moldovei

RAPORT
despre lucrarea de laborator Nr. 5
la Structuri de Date si Algoritmi

Tema: Lucru cu Fisierele in C și Lucrul cu alocarea


dinamică a memoriei în C
Varianta 3

A îndeplinit: Belii Daniela

Chişinău – 2020
Mersul lucrării:

Codul:
#include <stdio.h>
#include <string.h>
int main(){
FILE *fg;
int a;
char c;
printf("Introdu cate linii de text vor fi scrise: ");
scanf("%d", &a);
fisier1(fg, a);
fisier2();
fisier3();
return 0;
}

int fisier1(FILE *f,int n){


char str[30];
int i;
f = fopen("1.txt", "w");
for(i=0;i<n+1;i++){
fgets(str, sizeof str, stdin);
fputs(str, f);
}
fclose(f);
return 0;
}

int fisier2(){
FILE *f;
FILE *f2;
char ch;
int mari=0, mici=0, cifre=0;
f = fopen("1.txt", "r");
f2 = fopen("2.txt", "w");
int frecv = 0;
while((ch = fgetc(f)) != EOF){
if(isupper(ch) != 0){
mari++;
}else if(islower(ch) != 0){
mici++;
}else if(isdigit(ch) != 0){
cifre++;
}
}
fprintf(f2, "sunt %d litere mari, %d litere mici, %d cifre", mari,mici,cifre);
fclose(f);
fclose(f2);
return 0;
}

int fisier3(){
char ch;
FILE *f1, *f2, *f3;
f1 = fopen("1.txt", "r");
f2 = fopen("2.txt", "r");
f3 = fopen("3.txt", "w");
while((ch = fgetc(f1)) != EOF){
fputc(ch,f3);
}
while((ch = fgetc(f2)) != EOF){
fputc(ch,f3);
}
fclose(f1);
fclose(f2);
fclose(f3);
return 0;
}

1.txt

2.txt

3.txt
Ex 2

Codul:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

int func2();

int main()
{
char text[100];
printf("Introdu un string\n");
introdu(text);
func2();
return 0;
}

int introdu(char *text){


FILE *f;
f = fopen("input.txt", "w");
gets(text);
fprintf(f, "%s", text);
fclose(f);
return 0;
}

int func2() {
FILE *f, *f1;
char ch;
char *text;
int nr = 0;
int n = 0;
int i = 0;
f = fopen("./input.txt", "r");
f1 = fopen("./output.txt", "w");
text = (char*)malloc(100);
fgets(text, 100, f);
while(i<strlen(text)){
if(text[i] == ' ')
nr++;
i++;
}
printf("Sunt %d cuvinte in text", nr);
while(i<strlen(text)){
if (text[i] == ' ')
n++;
if(n > 0 && n < nr){
fputc(text[i], f1);

}
i++;
}
fprintf(f1, "\n%d cuvinte au fost scrise", nr-2);
free(text);
fclose(f);
fclose(f1);
}
input.txt

Output.txt

Concluzie:
In aceasta lucrare de laborator am lucruat cu fisiere, structuri si diferiti
algoritmi de sortari in C. Si cu alocarea memorie in C, functii cum ar fi malloc
si free.

S-ar putea să vă placă și