Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    generatore casuale di parole[C]

    ciao a tutti..vorrei un consiglio:
    devo generare "n" parole composte da delle lettere a caso.
    Le parole sono lunghe al max 11.
    questo lo faccio cn il seguente codice:
    codice:
     for(i=0;i<l;i++)
      {
       s1[i]=rand()%26 + 'a';
      }
    solo ke quanfo provo a stampare le parole ke si sono formate me le scrive così:
    wqwde - ZZ -B e altri char ascii!!!
    ecc ecc....

    di cui le prime 5 lettere sono giuste(wqwde) ma il resto che c'entra???

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    forza l'ultimo carattere a \0 così s1[11] = '\0'

  3. #3
    adesso provero' ...grazie

  4. #4
    ho fatto cosi':
    codice:
     for(i=0;i<l;i++)
      {
       s1[i]=rand()%26 + 'a';
      }
      s1[10]='\0';
    ciè dopo ogni parola forzo l'ultimo come char terminatore ma mi da in output sempre cosi'!!!!!--->
    wedcd - ZZ-
    saccv - ZZ-
    ecc...
    PS sono lunghe 10 le words..

  5. #5
    mi correggo, ha funzionato..volevo chiederti un'altra cosa:
    devo immettere queste "n" stringhe, su cui devo fare delle operazioni, in una struttura dati. Pero' ,dopo ke ho eseguito queste operazioni, ho bisogno ke alla prossima loro immissione, quelle precedenti nn c debbano essere.Cioè avrei bisogno di una struttura vuota per eseguire le stesse operazioni solo sulle nuove stringhe.
    che struttura dati posso usare x questo problema?

  6. #6
    Utente di HTML.it L'avatar di Kreator
    Registrato dal
    May 2002
    Messaggi
    278
    potrebbe essere un semplice array di caratteri in memoria dinamica.

    codice:
     
    #define N 100;
    ...
    char *ArrayWords[N];         // (N) slot per memorizzare le parole
    for (int i=0;i<N;i++)
       ArrayWords = new char [50];    // (50) lunghezza massima di una parola

  7. #7
    Originariamente inviato da Kreator
    potrebbe essere un semplice array di caratteri in memoria dinamica.

    codice:
     
    #define N 100;
    ...
    char *ArrayWords[N];         // (N) slot per memorizzare le parole
    for (int i=0;i<N;i++)
       ArrayWords[ i ] = new char [50];    // (50) lunghezza massima di una parola
    ti correggo :master:

  8. #8
    ma il numero di stringhe da generare è inserito da tastiera quindi nn è predefinito.!?!?!

  9. #9
    Utente di HTML.it L'avatar di Kreator
    Registrato dal
    May 2002
    Messaggi
    278
    hai ragione kentaromiura .. perferirei avere un compilatore sotto

    Allora ManInBlack la storia cambia, non di molto .. pero' cambia.

    una ipotetica implementazione potrebbe essere questa (con i puntatori a puntatori):

    codice:
     
    char **ArrayWords;
    ...
    ...
    cin >> NumberOfWords;
    
    ArrayOfWords = new char *[NumberOfWords];
             
    for (int i=0;i<NumberOfWords;i++)
    {
       ArrayWords[i] = new char [50];    // (50) lunghezza massima di una parola
    
       cout << "Inserisci la parola" << endl;
       cin >> parola;
    
       ...
    
    }

  10. #10
    scusami ma nn riesco a capire l'esempio..allora il numero di parole le leggo da input e quindi devo creare il mio array in base a questo input. Ma nn capisco xke' crei un puntatore a puntatore di tipo char e un vettore di puntatori..usi "ArrayWords" per accedere ad "ArrayOfWords" ???
    le liste nn si possono usare?

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.