Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] anomalia nell'immissione stringhe

    dunque...ho questo problema: chiedo all'utente un po' di stringhe e le leggo con scanf, tutto va bene ma se la prima stringa contiene uno o più spazi mi salta alla richiesta della terza!

    questo è il mio semplice codice:
    codice:
     
    int main()
    {
    
          char stringa_sorg[100];
          char stringa_dest[100];
          char vecchia[100];
          char nuova[100];
          printf("Inserisci la stringa sorgente: ");
          scanf("%s", &stringa_sorg);
          printf("Inserisci la parola da ricercare: ");
          scanf("%s", &vecchia);
          printf("Inserisci la parola da sostituire: ");
          scanf("%s", &nuova);
    
          getch();
          return 0;
    }
    vorrei anche fare una domanda:
    come fare se le dimensioni di un array non sono note a priori ma sono stabilite dal programma?

  2. #2
    adesso non ricordo di preciso come rulla la scanf, ma mi sembra che prende una stringa fino al primo spazio che incontra.

    Purtroppo la dimensione degli array deve essere nota al tempo di compilazione, non ci sono sistemi per cambiarla a runtime...

    Pero' al posto dei array puoi uscare le liste, pero non sono cosi semplici come gli array, e devi implememntare tu i metodi per ricerca, inserimento, elimina, restituisci!

    bye bye

  3. #3

    Re: [c] anomalia nell'immissione stringhe

    Originariamente inviato da Lucked

    vorrei anche fare una domanda:
    come fare se le dimensioni di un array non sono note a priori ma sono stabilite dal programma? [/B]
    o dichiari una variabile locale ad un blocco

    codice:
    dichiarazioni
    codice blocco
    scanf("%d",&n)   ti dai da tastiera il numero di celle da dedicare alla matrice
    { apri nuovo blocco
       int aa[n];  dichiarazione locale
       codice
    } chiudi blocco, n non esiste più
    codice
    
    fine


    oppure usi le funzioni calloc e malloc presenti nella standard libreria

    codice:
    #include<stdlib.h>
    
    int *p
    P=calloc(n,sizeof(int))
    n è il numero di spazi che ti servono per l'array calcolato dal programma

    ora p punta ad un array di n interi

  4. #4

    Re: [c] anomalia nell'immissione stringhe

    codice:
     
    int main()
    {
    
          char stringa_sorg[100];
          char stringa_dest[100];
          char vecchia[100];
          char nuova[100];
          printf("Inserisci la stringa sorgente: ");
          scanf("%s", &stringa_sorg);
          printf("Inserisci la parola da ricercare: ");
          scanf("%s", &vecchia);
          printf("Inserisci la parola da sostituire: ");
          scanf("%s", &nuova);
    
          getch();
          return 0;
    }
    strano che non ti dia errori di compilazione
    %s è un carattere speciale, fa si che nello scanf non ci sia &

    codice:
    scanf("%s", stringa_sorg);

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    e cosa devo fare per non avere questo errore nella lettura delle stringhe? uffaaa

  6. #6
    te l'ho scritto, non mettere la e commerciale &

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    siii ma prova tu per credere....non funzionaaaa lo stessoooo
    bueeeeeeeeeeeeee triste
    dormite tutti?? E' presto! :bubu:
    help! help! help!

  8. #8
    posta tutto il programma e dimmi cosa intendi fare.
    le stringhe che prendi da imput come sono ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    (il codice di sopra levando &)
    ...è questo sarebbe il potente c?? Non posso immetere 3 stringhe con spazi??

  10. #10
    ma cosa vuoi fare?

    inserire 3 stringhe in 3 variabili diverse, o 3 stringhe (separate da spazio) in un unica variabile?

    se cosi' fosse ti conviene mettere le stringhe su piu' variabili e poi usare una funzuione di concatenazione

    siccome vedo che hai molti dubbi(vedi altri topic da te aperti) ti conviene comprarti un manualetto di c tipo il KR , che ti puo' risolvere tutti i problemi in meno tempo di quello impiegato ad aspettare qualuno sul forum che ti possa rispondere correttamente

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.