[C] ma come funzionano le stringhe?

di Anonimizzato12154 il
3 risposte
Ciao a tutti,
io ho questo codice:
char stringa[7]
scanf("%s", stringa)
printf("%s", stringa)
allora se in input scrivo "ciao", viene stampato "ciao",
se scrivo "stringaconpiùdisettecaratteri", viene stampata la stringa appena immessa.
Ora mi domando non dovrebbe essere stampata la stringa "string" troncando i rimanenti caratteri?

Inoltre come faccio ad aquisire una stringa separata da spazi con scanf?

3 Risposte

  • Le stringhe del C sono sequenze di caratteri in memoria, a partire da un indirizzo e sono terminate da 0 binario.

    La scanf non limita l'inserimento nella stringa a meno che non usi un valore apposito per la %s

    Se sovrascrivi lo 0 binario con una scanf sbagliata scrivi in memoria "oltre" il buffer con risultati imprevedibili ... avrai un crash o anche nulla a seconda dei casi.

    Sia per controllare l'input che per gli spazi è meglio utilizzare la funzione

    fgets
  • Mi puoi spiegare come funziona fgets?
Devi accedere o registrarti per scrivere nel forum
3 risposte