Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: main.c
- * Author: Sonia
- *
- * Created on 24 gennaio 2018, 12.36
- * PROVA ESAME FONDAMENTI DI PROGRAMMAZIONE
- * Leggere da un file di input 1 stringa pattern e 1 stringa target.
- * Stampare su un file di output il numero di ripetizioni della stringa pattern nella stringa target.
- * ESEMPIO FILE DI INPUT:
- * dog
- * osihadoihasdogiusdgadugdogisudgaisdgdogiusdadogsda
- * ESEMPIO FILE DI OUTPUT:
- * stringa pattern:dog
- * stringa target:osihadoihasdogiusdgadugdogisudgaisdgdogiusdadogsda
- * la stringa pattern è ripetuta 4 volte nella stringa target.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_STR_LEN 256
- #define MAX_PAT_LEN 16
- #define MAX_FN_LEN 32
- FILE * my_fopen(char []);
- void get_data(FILE *, char[], char[]);
- void compute_put_data(FILE *, char[], char[]);
- main(){
- char string[MAX_STR_LEN], pattern[MAX_PAT_LEN];
- FILE * fp;
- fp=my_fopen("r");
- get_data(fp, string, pattern);
- fclose(fp);
- fp=my_fopen("w");
- compute_put_data(fp, string, pattern);
- fclose(fp);
- return 0;
- }
- FILE * my_fopen(char mode[]){
- FILE * fp;
- char filename[MAX_FN_LEN];
- printf("Insert %s filename: ", (mode[0]=='r')?("input"):("output"));
- fgets(filename, MAX_FN_LEN-1, stdin);
- filename[strlen(filename)-1]='\0';
- if ((fp=fopen(filename, mode))==NULL)
- abort();
- else
- return fp;
- }
- void get_data(FILE * fp, char string[], char pattern[]){
- fgets(pattern, MAX_PAT_LEN-1, fp);
- pattern[strlen(pattern)-2]='\0';
- fgets(string, MAX_STR_LEN-1, fp);
- }
- void compute_put_data(FILE * fp, char string[], char pattern[]){
- int i, j, conta, contb=0;
- char * token;
- for(i=0;i<strlen(string)-strlen(pattern)+1;i++){
- conta=1;
- for(j=0;j<strlen(pattern);j++)
- if(string[i+j]!=pattern[j])
- conta=0;
- if(conta==1)
- contb++;
- }
- fprintf(fp, "Pattern: %s\nString: %s\nOccurrences: %d", pattern, string, contb);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement