Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    6

    [C] Aiuto esercizio sulle stringhe nel file.

    Ciao a tutti, ho scritto questo programma ma non mi funziona. Non mi restituisce quante volte la stringa è contenuta nel file. Ho provato a compilare il programma con ubuntu e li funziona invece quando lo compilo con il mio mac non funziona correttamente. Ho anche provato a fare una verifica stampando la stringa che dovrebbe leggere dal file ma stampa un'altra cosa al suo posto! Qualcuno potrebbe aiutarmi a risolvere questo problema?? Grazie.


    codice:
    /* Creare un programma in linguaggio C che, data una stringa immessa da testiera calcoli quante volte la stringa è presente in un file di testo.*/
    
    
    
    
    #include <stdio.h>
    #define M 100
    
    
    int stringa (char s[], char t[]);
    
    
    int main ()
    {
        char s[M], t[M];
        int a;
        FILE *fp;
    
    
        
    //primo modo:
        if((fp=fopen("testo.txt", "r"))==NULL)
        {
            printf("Il file non può essere aperto.\n");
        }
    
    
        else
        {
            printf("Inserisci la stringa da cercare:\n");
            scanf("%s", t);
            fscanf(fp, "%s", s);
            
            a=stringa(s,t);
    
    
               printf("La stringa è contenuta %d volte\n", a);
                fprintf(fp, "La stringa è contenuta %d volte\n", a);
            fclose(fp);
        }
    
    
    } //main
    
    
    /* secondo modo:
    
    
        fp=fopen("fileditesto.txt", "w");
        printf("Inserisci un testo:\n");
        scanf("%s", s);
        fprintf(fp, "%s\n", s);l
      
        printf("Inserisci la stringa da cercare:\n");
        scanf("%s", t);
        fprintf(fp, "%s\n", t);
        
        a=stringa(s,t);
        
        printf("La stringa è contenuta %d volte\n", a);
        fprintf(fp, "La stringa è contenuta %d volte\n", a);
        
        fclose(fp);
    
    
    
    
    }
    */
    
    
    int stringa (char s[], char t[])
    {
        int i, j, k, cont=0;
        
        for (i=0; s[i]!='\0'; i++)
        {
            for (j=i, k=0; t[k]!='\0' && s[j]==t[k]; j++, k++)
            {
                ;
            }
            
            if (t[k]=='\0')
            {
                cont++;
            }
        }
        
        if (cont==0)
        {
            cont=-1;
        }
        
        return cont;
    
    
    }
    Ultima modifica di LeleFT; 11-11-2014 a 14:46 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il codice senza i tag CODE non si capisce ...

    C'è un "primo modo" e un "secondo modo" ... cosa vuol dire?

    E infine, perché non usi la funzione strcmp per confrontare la stringa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    6
    Tag CODE? Comunque ho implementato la funzione in due modi. Nel primo il filr lo creo io precedentemente, nel secondo il file lo apro da terminale.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323
    @Cetty93: quando si posta del codice, questo va inserito all'interno degli appositi tag [CODE] ... [/CODE], in modo da mantenerne formattazione e indentazione; così risulta più leggibile.

    Ho sistemato io il tuo post.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    6
    Ah ok! Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.