Aiuto per esercizio in C

di il
4 risposte

Aiuto per esercizio in C

Si scriva un programma C che, letto da un file di testo contenente un testo e immaginatelo in
una matrice di caratteri, cerchi nel testo memorizzato il pattern "dog".
La ricerca viene effettuata sia nelle righe componenti il testo sia nelle colonne che nascono considerando
in verticale gli elementi corrispondenti di ciascuna riga.
Nello specifico, una volta letti il testo e il pattern, il programma stampa a video sia il pattern sia il testo.
e individua il numero di occorrenze del pattern nel testo.
Infine, il pattern, il testo e numero di occorrenze del pattern vengono scritti nel file output.

Ad esempio, se il file input contiene:

sdkjhfjdogsjkhjkshkjhskjdoguy
bcxnmxcomxnmnxcz
bxzqyuegakjdhksdogakjkjdakkdogauiowtuioe

il file output conterrà:

stringa da ricercare: dog
nel testo:

sdkjhfjdogsjkhjkshkjhskjdoguy
bcxnmxcomxnmnxcz
bxzqyuegakjdhksdogakjkjdakkdogauiowtuioe

la stringa cercata compare n.5 volte..

Questo è l'esercizio, non riesco a implementare la funzione per la ricerca del pattern nella matrice di caratteri.
Ho questa funzione: int stringaInMatrice (char mat[][MAXCOL], int n, char str[])
in cui dovrei restituire il numero di occorrenze.
Qualcuno potrebbe aiutarmi? Grazie.

4 Risposte

  • Re: Aiuto per esercizio in C

    ... in cui dovrei ...
    Esamina tutte le righe della matrice cercando la stringa con una funzione come la strstr
  • Re: Aiuto per esercizio in C

    La risposta è:
    - di tipo banale, cioè esercizietto
    - di tipo serio ?

    Per il primo caso ti basta, come accennato sopra, uno string matching "rozzo" con un ciclo in cui ti "mangi" ad esempio il primo carattere.
    Nel secondo (string matching) entri in un mondo mooolto diverso, ma non credo sia il tuo
  • Re: Aiuto per esercizio in C

    È una prova d'esame
    io ho provato cosi:
    int stringaInMatrice (char mat[][MAXCOL], int n, char str[])
    {
    int i,j,occ=0;

    for(i=0;i<n;i++){

    if(mat==str){
    occ++;
    }
    }



    return occ;

    ma mi restituisce 0 come n.di occorrenze.

    ps:char str[]='dog'
  • Re: Aiuto per esercizio in C

    È una prova d'esame
    io ho provato cosi:
    int stringaInMatrice (char mat[][MAXCOL], int n, char str[])
    {
    int i,j,occ=0;

    for(i=0;i<n;i++){

    if(mat==str){
    occ++;
    }
    }



    return occ;

    ma mi restituisce 0 come n.di occorrenze.

    ps:char str[]='dog'
Devi accedere o registrarti per scrivere nel forum
4 risposte