Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    [C] memorizzare una stringa alfanumerica

    dovrei memorizzare una stringa composta
    da + caratteri alfanumerici, ma da come
    ho capito char può contenere solo un
    carattere.

    come si fa a inserire una stringa di +
    caratteri in una variabile ?


    codice:
    #include <stdio.h>
    
    main()
    {
    
    char stringa ;
    
    printf ("inserisci un valore:");
    
    scanf("%c", &stringa);
    
    printf ("\n\nIl valore inserito è: %c", stringa);
    
    }
    Errare humanum est, perseverare ovest

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    devi usare i puntatori a caratteri

    codice:
    ...
    char* stringa;
    ...
    la differenza tra puntatore e carattere è che un puntatore è una variabile che contiene l'indirizzo di memoria della variabile, mentre la variabile normale solo il valore, quindi per ottenere il valore di un puntatore lo si deve deferenziare, usando proprio l'operatore *.

    Una cosa importante che stavo dando per scontato è che il puntatore deve essere inizializzato, sennò, sopratutto in C con compilatore C, certi errori e dura trovarli.

    Per inizializzare i puntatori puoi usare o il sistema più semplice, gli array, o allocare con malloc:

    codice:
    char stringa[200];
    char* stringa = (char*)malloc(200);
    //cast non necessareio dato che C prende un void* per char* senza dare problemi...
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Devi farti un vettore di Caratteri

    codice:
    int main() {
         char str1[25+1];  /* +1 perche' l'ultimo e' il '\0' */
         char str2[25+1];
    
         printf("Read String (NO SPACE): ");
         scanf("%s", str1);
    
         printf("Read String (AND SPACE): ");
         gets(str2);
    
         puts(str1);
         puts(str2);
    
         return(0);
    }
    Dai Come Input "Matteo Pippo"
    in tutte due le richieste e vedi i risultati

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    Re: [C] memorizzare una stringa alfanumerica

    fatto, ma mi scrive sempre solo il primo carattere

    codice:
    #include <stdio.h>
    
    main()
    {
    
    char* stringa ;
    
    printf ("inserisci un valore:");
    
    scanf("%c", &stringa);
    
    printf ("\n\nIl valore inserito è: %c", stringa);
    
    }
    Errare humanum est, perseverare ovest

  5. #5
    Per i piu' ...:
    codice:
     warning: the `gets' function is dangerous and should not be used
    Usa fgets()
    codice:
    char *fgets(char *s, int size, FILE *stream);
    codice:
    fgets(stringa, DIM_MAX_STRING, stdin);
    DIM_MAX_STRING e' una costante che hai definito tu...
    es. il 25 di prima.

    Attento che prende anche il carattere di '\n'
    quindi di fare
    codice:
    stringa[strlen(stringa)-1] = '\0'
    '\0' Termina la stringa.

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425

    Re: Re: [C] memorizzare una stringa alfanumerica

    Originariamente inviato da carlo2002
    fatto, ma mi scrive sempre solo il primo carattere

    codice:
    #include <stdio.h>
    
    main()
    {
    
    char* stringa ;
    
    printf ("inserisci un valore:");
    
    scanf("%c", &stringa);
    
    printf ("\n\nIl valore inserito è: %c", stringa);
    
    }
    come già suggerito devi usare i vettori, che altro non sono che un puntatore al loro primo elemento, ecco un codice di esempio.

    codice:
    #include <stdio.h>
    
    int main() {
    char stringa[200];
    printf("Inserire valore: ");
    scanf("%s", stringa);
    printf("%s\n", stringa);
    
    return 0;
    }
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    azz. credevo fosse + semplice,
    ho incominciato oggi, con calma capirò cosa mi
    avete suggerito.

    grazie ragazzi
    Errare humanum est, perseverare ovest

  8. #8
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    Re: Re: [C] memorizzare una stringa alfanumerica

    ok, così funziona

    codice:
    #include <stdio.h>
    
    main()
    {
    
    char stringa[200] ;
    
    printf ("inserisci un valore:");
    
    scanf("%s", &stringa);
    
    printf ("\n\nIl valore inserito è: %s", stringa);
    
    }
    non ho capito xkè hai messo int main()
    e alla fine return 0
    Errare humanum est, perseverare ovest

  9. #9
    dire "main() {"
    o "int main() {"

    e' la steassa cosa perche' se non specificato, il tipo di ritorno e' int

    quindi la tua main() diventa int main()
    return 0 serve per dire al sistama operativo che e' finito tutto bene.

  10. #10
    Non e' scanf("%s", &stinga); ma scanf("%s", stringa);
    senza &

    Non Usare scanf() se devi inserire "Ciao a Tutti" scanf() prende solo "Ciao" il resto lo scarta.
    Piuttosto usa gets()

    gets(striga);

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.