Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    8

    [C] esercizio in c e difficoltà con le stringhe

    Ciao a tutti,
    sono nuovo del forum e per qnt riguarda l'uso di C.
    ho scritto un piccolo programma che legge stringhe da testo e le stampa a video sl k m stampa sl l'ultima parola e poi ho completato un' esercitazione ma nella definizione della 2a funzione ho problemi. vi posto il codice nella speranza ke mi possate aiutare in modo esauriente.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    main()
    {
          FILE *fp;
          char string[200];
          char filename[200];
          printf("Inserire nome file:\n");
                gets(filename);
          fp=fopen(filename, "r");
          if(fp!=NULL){
          while(fscanf(fp, "%s", &string)!=EOF);
          printf("%s", string);
    }
    else printf("\nErrore apertura file\n");
    fclose(fp);
    system("PAUSE");
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    8
    e questa è la seconda funzione:
    codice:
     * La funzione CalcolaOccorrenze prende in ingresso il vettore di stringhe, la
     * sua dimensione, un carattere e un vettore. Calcola il numero di
     * occorrenze del carattere dato in input per ogni parola del vettore di stringhe
     * e la inserisce nella posizione corrispondente del vettore (es.: il numero di
     * occorrenze del carattere dato nella prima parola viene inserito nella prima
     * posizione del vettore, le occorrenze del carattere nella seconda parola nella seconda
     * posizione del vettore, etc.).
     */
    void CalcolaOccorrenze(char parole[][MAXNOME], int riemp, char c, int vett[])
    {
     /* INSERIRE QUI il corpo della funzione */
    FILE *fp;
    int i, j, cont=0;
    fp=fopen("parole.txt", "r");
     
    
    }
    come procedo dopo la fopen?grazie mille per i suggerimenti

  3. #3
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Ciao... Nel primo pezzo di codice, nello fscanf del while passa string al posto di &string (comunque usa un identificatore diverso visto che string è un tipo già definito in c++) e poi togli il punto e virgola dopo lo stesso while. Per l'altro pezzo prova a implementare 2 cicli innestati :quello esterno scorre le varie stringhe e modifica la stringa secondo l' altro ciclo mentre quello interno scorre i caratteri delle stringhe e impostare il numero di occorenze del carattere. . .

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: [C] esercizio in c e difficoltà con le stringhe

    codice:
          ...
          if ( fp != NULL ) {
             while( fscanf(fp, "%s", stringa) != EOF )
                printf("%s", stringa);
          }
          ...
    Ma la seconda funzione è collegata alla prima? In quel caso devi salvare in un array di stringhe tutte le stringhe che leggi da file (e non stamparle semplicemente) per poi ragionare su come procedere... insomma, comincia a fare quello altrimenti è inutile perderci troppo la testa.
    every day above ground is a good one

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    8
    il punto è questo,
    ho dichiarato una variabile cont e una char c,intuitivamente so ke scorrendo sulle j di parole[][MAXNOME] devo prendere creare una espressione ke mi dica di incrementare cont quando parole[i][j] è uguale a c;
    tipo cs:

    codice:
    for(i=0; i<riemp; i++)
    {
             for(j=0; j<MAXNOME; j++)
             {
                      while(fscanf(fp, "%c", parole[j])== c)
                      cont++;
                      vett[i]== cont;
                      }
    }
    }
    ma nn mi fa compilare e cmq nn mi conta le occorrenze per bene;
    ah il primo prog l'ho sistemato.e funziona grazie,
    @YuYevon
    sn due esercizi separati, non hanno alcun nesso tra loro

  6. #6
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Prova a spostare vect[i]=cont; subito dopo fuori il secondo ciclo. Per quanto riguarda l' errore di compilazione potresti postare il messaggio d' errore ???

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    8
    posso inviare il file come allegato?
    io lo posto nella speranza ke qlcn possa aiutarmi.
    http://pastebin.com/pastebin.php?dl=f6ddd8508

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Nella riga indicata

    vett[i]== cont;} /*qui sta il problema*/

    perche' hai inserito

    ==

    ?

    Se vuoi assegnare un valore devi usare solo

    =
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Comunque da come ho capito CalcolaOccorrenze non deve leggere da file, ma solo modificare un array di stringhe secondo la ricorrenza del carattere.Prova così:
    codice:
    void CalcolaOccorrenze(char parole[][MAXNOME], int riemp, char c, int vett[])
    {
    int i=0;
    int j=0;
    int count=0;
    for(i=0; i<riemp; i++)
    {
    for(j=0; j<MAXNOME; j++)
    {
    if(parole[i][j]==c)
    count++;
    }
    vett[i]=count;
    count=0;
    }
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.