Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    contare il numero di occorrenze in una stringa

    ciao a tutti! buona domenica. Devo scrivere un programma che conti il numero di occorrenze di una determinata coppia di caratteri in una stringa...

    codice:
    #include <stdio.h>
    #include <string.h>
    #define N 10
    
    int occorrenze (char A[], char B[]);
    
    int occorrenze (char A[], char B[]){
        int i, j=0, l=0, dim=0;
        
        printf ("Inserire frase: ");
        scanf ("%s", &A);
        
        printf ("Inserirre occorrenza: ");
        scanf ("%s", &B);
        
        dim= strlen(A);
        
        for (i=0; i<N; i++){
            if (A[i]==B[l] && A[i+1]==B[l+1]){
                j++;
                i--;}
            l=0;
            
        }
        return j;
    }
    
    int main()
    {
        char v[N], v_1[N];
        occorrenze (v, v_1);
        return 0;
    }
    Purtroppo mi da errore quando compilo: "EXc_BAD_ACCES" alla riga dim=strelen(A);.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: contare il numero di occorrenze in una stringa

    codice:
        scanf ("%s", A);
        
        scanf ("%s", B);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    svista... ti ringrazio ma pur compilando non funziona. non so dove sbaglio cavolo!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nel tuo codice hai usato la strlen e inizializzato la variabile dim ... ma dove l'hai usato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    scusa ho fatto una modifica dopo:
    codice:
    dim= strlen(A);
        
        for (i=0; i<dim; i++){
            if (A[i]==B[l] && A[i+1]==B[l+1]){
                j++;
                i--;}
            l=0;
            
        }
        return j;

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... devi sempre farci vedere il codice di cui parli altrimenti non si capisce nulla.

    Adesso, quale codice usi? Spiega in poche parole a cosa ti serve ogni riga ...
    Dicci anche quale prova fai, cosa metti in input e cosa ottieni in output (ma dove sono le istruzioni per l'output?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    codice:
    #include <stdio.h>
    #include <string.h>
    #define N 10
    
    int occorrenze (char A[], char B[]);
    
    int occorrenze (char A[], char B[]){
        int i, j=0, l=0, dim=0;
        
        printf ("Inserire frase: ");
        scanf ("%s", A);
        
        printf ("Inserirre occorrenza: ");
        scanf ("%s", B);
        
        dim= strlen(A);
        
        for (i=0; i<dim; i++){
            if (A[i]==B[l] && A[i+1]==B[l+1])
                j++;
            l=0;
            
        }
        return j;
    }
    
    int main()
    {
        char v[N], v_1[N];
        occorrenze (v, v_1);
        return 0;
    }
    In input metto "tre" e poi "tr", mi dovrebbe ridare 1 (ovvero 1 ricorrenza). ma non fa niente... Pensavo che con return j; mi desse il numero!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Pensavo che con return j; mi desse il numero!
    Devi ripassare le basi del linguaggio ...

    Il return restituisce il valore dalla funzione al main, ma certamente non lo visualizza ...

    Cosa si usa per visualizzare dei dati a video in C?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    ah... ok, quindi metto un printf?

  10. #10
    Inserire frase: tre tre tre
    Inserirre occorrenza: 1Program ended with exit code: 0

    Questo è l'output... se metto solo "tre" mi dà 1.
    se metto una frase (quindi con spazi...) non mi fa mettere l'occorrenza da cercare...

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.