Stringa con lettere uguali[RISOLTO]

di il
2 risposte

Stringa con lettere uguali[RISOLTO]

Devo contare quante volte compare una lettera in una stringa.
questo per ogni lettera della stringa.
ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#define  N 80
#define  B 25
int main()
{
    char alpha[]={'a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    char s[N]={0},k=0,i,j;
    int counter[B];
    printf("stringa:");
    scanf("%s",s);
    k=strlen(s);
    for(i=0;i<25;i++){
        for(j=0;j<B;j++){
            if(s[i]==alpha[j]){
                counter[j]++;
            }
        }
    }
    for(i=0;i<B;i++){
        if(alpha[i]!=0)
        printf("lettera %c presente %d volte\n",alpha[i],counter[i]);
    }

    return 0;
}
Non riesco a farlo funzionare!

2 Risposte

  • Re: Stringa con lettere uguali[RISOLTO]

    C'è molto casino nella logico.
    Puoi farlo molto più semplicemente controllando una lettera quante volte è compresa nella stringa e stamparlo a video.

    Prova a vedere questo:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define  N 80
    #define  B 25
    int main()
    {
        char alpha[]={'a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        char s[N];
        int i,j,k,counter;
        printf("stringa:");
        fgets(s, N, stdin);
        k = strlen(s);
        for(i=0;i<B;i++)
        {
            counter = 0;
            for(j=0;j<k;j++)
            {
                if(alpha[i] == s[j])
                {
                    counter += 1;
                }
            }
            if(counter != 0)
            {
                printf("La lettera %c e' presente %d volte\n", alpha[i], counter);
            }
        }
    
        return 0;
    }
    
    
  • Re: Stringa con lettere uguali[RISOLTO]

    Ok così funziona grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte