al Republicii Moldova
RAPORT
despre lucrarea de laborator Nr. 5
la Structuri de Date si Algoritmi
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 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 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.