Verifca se inesrisco un numero

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Verifca se inesrisco un numero

    Hai provato questo codice? Ti sembra corretto?

    A parte l'algoritmo, hai anche delle sviste per cui dovresti avere errori

    lungghezza
  • Re: Verifca se inesrisco un numero

    Attento. Prova ad immaginarti cosa fa il programma che hai scritto se legge la stringa ‘’arte5'. Legge un carattere alla volta, giusto? Quindi legge una a, una r, una t, una e, e poi un 5. Il for si ferma solo alla fine della stringa, quindi ka stringa viene letta tutta. 4 caratteri non sono numeri, ma l'ultimo si, quindi la stringa viene percepita come un numero.

    Ora, domanda per de: tu, alla lettura di quale carattere ti sei accorto che arte5 non è un numero? Da li ti serve leggere altro, oppure hai già la risposta? (Per far interrompere un ciclo esiste break;)

  • Re: Verifca se inesrisco un numero

    Buona sera sono riuscito a capire come discriminare carattere per carattere,chiedo cortesmente consigli e pareri

    #include <stdio.h>
    #include <string.h>
    #define Dimensione 50
    int main()
    {
       char MiaStringa[Dimensione]="";
       char *Numero="";
       int i=0,LunghezzaStringa=0;
        printf(" %s","Inserire una Stringa");
         scanf(" %s", MiaStringa);
          LunghezzaStringa=strlen(MiaStringa);
           printf(" %s %d \n", "La lunghezza e';",LunghezzaStringa);
    
    
                while(MiaStringa[i]!='\0')
                {
                switch(MiaStringa[i])
                {
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                    case '8':
                    case '9':
                    printf("%c %s \n",MiaStringa[i],"E' Un Numero");
                    break;
                     case 'a':
                     case 'b':
                     case 'c':
                     case 'd':
                     case 'e':
                     case 'f':
                     case 'g':
                     case 'h':
                     case 'i':
                     case 'l':
                     case 'm':
                     case 'n':
                     case 'o':
                     case 'p':
                     case 'q':
                     case 'r':
                     case 's':
                     case 't':
                     case 'u':
                     case 'v':
                     case 'z':
                     case 'x':
                     case 'y':
                     case 'j':
                     case 'w':
                      printf("%c %s \n",MiaStringa[i],"E' Una Lettera Minuscola");
                       break;
                     case 'A':
                     case 'B':
                     case 'C':
                     case 'D':
                     case 'E':
                     case 'F':
                     case 'G':
                     case 'H':
                     case 'I':
                     case 'L':
                     case 'M':
                     case 'N':    
                     case 'O':
                     case 'P':
                     case 'Q':
                     case 'R':
                     case 'S':
                     case 'T':
                     case 'U':
                     case 'V':
                     case 'Z':
                     case 'X':
                     case 'Y':
                     case 'J':
                     case 'W':
                     printf("%c %s \n",MiaStringa[i],"E' Una Lettera Maiusola");
                    break;
                     default:
                      //printf("%s","E' qualcosa altro");
                       break;
                }//EXIT SWITCH
                i++;
                }  //Exit While
    
    
    
    
        return 0;
    }
    
          
           
    
    
    
    
  • Re: Verifca se inesrisco un numero

    No, questo switch con tutti i case non hanno senso, elimina tutto.

    Usa una sola if controllando se il carattere è una cifra passandolo alla funzione isdigit

    https://www.google.com/amp/s/www.geeksforgeeks.org/isdigit-function-in-c-cpp-with-examples/amp/

    P.S. studia la libreria standard del C prima di scrivere codice

  • Re: Verifca se inesrisco un numero

    15/10/2023 - oregon ha scritto:


    No, questo switch con tutti i case non hanno senso, elimina tutto.

    Usa una sola if controllando se il carattere è una cifra passandolo alla funzione isdigit

    https://www.google.com/amp/s/www.geeksforgeeks.org/isdigit-function-in-c-cpp-with-examples/amp/

    P.S. studia la libreria standard del C prima di scrivere codice

    ok grazie

  • Re: Verifca se inesrisco un numero

    15/10/2023 - Antonio-Sim ha scritto:


    Buona sera sono riuscito a capire come discriminare carattere per carattere,chiedo cortesmente consigli e pareri

    #include <stdio.h>
    #include <string.h>
    #define Dimensione 50
    int main()
    {
       char MiaStringa[Dimensione]="";
       char *Numero="";
       int i=0,LunghezzaStringa=0;
        printf(" %s","Inserire una Stringa");
         scanf(" %s", MiaStringa);
          LunghezzaStringa=strlen(MiaStringa);
           printf(" %s %d \n", "La lunghezza e';",LunghezzaStringa);
    
    
                while(MiaStringa[i]!='\0')
                {
                switch(MiaStringa[i])
                {
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                    case '8':
                    case '9':
                    printf("%c %s \n",MiaStringa[i],"E' Un Numero");
                    break;
                     case 'a':
                     case 'b':
                     case 'c':
                     case 'd':
                     case 'e':
                     case 'f':
                     case 'g':
                     case 'h':
                     case 'i':
                     case 'l':
                     case 'm':
                     case 'n':
                     case 'o':
                     case 'p':
                     case 'q':
                     case 'r':
                     case 's':
                     case 't':
                     case 'u':
                     case 'v':
                     case 'z':
                     case 'x':
                     case 'y':
                     case 'j':
                     case 'w':
                      printf("%c %s \n",MiaStringa[i],"E' Una Lettera Minuscola");
                       break;
                     case 'A':
                     case 'B':
                     case 'C':
                     case 'D':
                     case 'E':
                     case 'F':
                     case 'G':
                     case 'H':
                     case 'I':
                     case 'L':
                     case 'M':
                     case 'N':    
                     case 'O':
                     case 'P':
                     case 'Q':
                     case 'R':
                     case 'S':
                     case 'T':
                     case 'U':
                     case 'V':
                     case 'Z':
                     case 'X':
                     case 'Y':
                     case 'J':
                     case 'W':
                     printf("%c %s \n",MiaStringa[i],"E' Una Lettera Maiusola");
                    break;
                     default:
                      //printf("%s","E' qualcosa altro");
                       break;
                }//EXIT SWITCH
                i++;
                }  //Exit While
    
    
    
    
        return 0;
    }
    
          
           
    
    
    
    

    Ma cos'è scherzi a parte o candid camera?

  • Re: Verifca se inesrisco un numero

    No Andrea, solo uno che non ha esperienza e conoscenza del C e delle librerie.

    Come lo eravamo anch'io e tu … 

  • Re: Verifca se inesrisco un numero

    Scusa Silente ma quella if scritta in modo errato e quella espressione poco utile nel caso specifico, non fanno altro che far confondere di più l'op.

  • Re: Verifca se inesrisco un numero

    Ok

    Provvedo a cancellare, per tenere pulito il topic. Hai ragione, mi sono lasciato andare

  • Re: Verifca se inesrisco un numero

    Ma se metti il valore di input in una variabile numerica ti da errore? Se si, cosa potrebbe significare?

Devi accedere o registrarti per scrivere nel forum
24 risposte