Problema con stringhe

di il
2 risposte

Problema con stringhe

Ciao a tutti, devo fare questo esercizio:

Data una stringa di lunghezza massima 80 caratteri contare il numero di lettere comprese tra A e G che contiene. Supporre i caratteri tutti maiuscoli. Realizzare la stessa in modo che consideri i caratteri sia maiuscoli che minuscoli.

io ho scritto un pezzo di codice ma non va e non ho più idee per mettere a posto e per finire l'esercizio
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIM 80

int main(int argc, const char * argv[])
{

    char v[DIM];
    int i=0,cont=0;
    int p=65;
    
    for (i=0; i<DIM && p<=90 ; i++)
    {
        v[i]=p;
        printf("%c\n\n",v[i]);
        p+=1;
    }
    for (i=0; i<DIM; i++)
    {
        if(65< v[i]&& v[i] < 90)
           cont++;
    }
    printf("%d",cont);
    
    
    fflush(stdin);
    getchar();
    return 0;
}

2 Risposte

  • Re: Problema con stringhe

    Ho visualizzato il tuo codice ma è molto lontano da ciò che ti chiede l'esercizio.
    Tu non fai altro che riempire il vettore di tutti i caratteri dell'alfabeto e poi con il secondo ciclo che va aggiustato, controlli i caratteri che vanno da A a G.
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define DIM 80
    
    int main(int argc, const char * argv[])
    {
    
        char v[DIM];
        int i=0,cont=0;
        int p=65;
    
        for (i=0; i<DIM && p<=90 ; i++)
        {
            v[i]=p;
            printf("%c\n\n",v[i]);
            p+=1;
        }
        for (i=0; i<DIM; i++)
        {
            if(v[i] >= 65 && v[i] <= 71)
               cont++;
        }
        printf("%d",cont);
    
    
        fflush(stdin);
        getchar();
        return 0;
    }
    
    In questo modo il tuo codice funziona, ma non è proprio ciò che ti chiede l'esercizio anche perchè la stringa credo dovrebbe essere inserita tramite una gets...
    Per quanto riguarda la seconda parte che tiene conto sia delle maiuscole che delle minuscole cambia poco..
  • Re: Problema con stringhe

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    char* getline(char* line)
    {
        char *src=line;
        while( (*line++=getchar()) !='\n');
        *line='\0';
        return src;
    }
    
    
    int count_ag(char *s)
    {
        int nag;
        for (nag = 0; *s != '\0' ;s++)
            if ( ((*s >= 'a') && (*s <='g')) || ((*s >= 'A') && (*s <='G')) ) nag++;
        return nag;
    }
    
    int main()
    {
        printf("Hello, I'm count....\n");
    
        char line[80];
    
        printf("Insert a string:");
        getline(line);
    
        printf("\n The string have %d char from 'A' to 'G'\n\n Good Bye.",count_ag(line));
    
        return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
2 risposte