Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come collegare nome ad un elemento della struttura?
Forum - C/C++ - Come collegare nome ad un elemento della struttura?

Avatar
rob (Normal User)
Newbie


Messaggi: 16
Iscritto: 16/11/2013

Segnala al moderatore
Postato alle 21:59
Martedý, 24/12/2013
Ho creato una struct e vorrei far si che: se un elemento della struttura Ŕ uguale a una scritta data in input allora accade una determinata cosa.
Esempio:


Codice sorgente - presumibilmente C/C++

  1. struct esempio{
  2. char scritta[32];
  3. }
  4.  
  5. cin >> scritta[32];
  6.  
  7. n = 0;
  8.  
  9. if (scritta[32] == 'ciao'){
  10. n = 10;
  11. }



PerchŔ in quell' if mi da l'errore?

Il codice non Ŕ scritto perfettamente, lo so, ma Ŕ per dare l'idea!

Grazie...

Ultima modifica effettuata da rob il 24/12/2013 alle 22:01


Rob
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 967
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:00
Martedý, 24/12/2013
Ciao!

Una struct Ŕ un tipo di dato. Di conseguleza non puoi scrivere direttamente  l' istruzione cin >> scritta[32] ;
Devi dichiarare un' istanza di esempio, a cui accedere a scritta.

Nell' if, la notazione Ŕ sbagliata: indichi la stringa ciao tra singoli apici, come se fosse un singolo carattere.
Per il confronto delle stringhe ci sono le apposite funzioni: http://www.cplusplus.com/reference/cstring/?kw=string.h


Nulla va pi¨ veloce della luce, quindi rilassati.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:58
Mercoledý, 25/12/2013
Aggiungo che, dato che scrivi in C++, non ha senso usare gli array di char del C per le stringhe.

Utilizza gli oggetti di classe string e potrai anche fare a meno delle funzioni di confronto delle stringhe del C.


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
rob (Normal User)
Newbie


Messaggi: 16
Iscritto: 16/11/2013

Segnala al moderatore
Postato alle 12:36
Giovedý, 26/12/2013
Non ho capito... non ho trovato niente da nessuna parte!

in poche parole se un nome dato in input Ŕ uguale a un altro che si trova in una struct allora succede qualcosa... tipo (pi¨ semplicemente):

Codice sorgente - presumibilmente C/C++

  1. if (Info[10].lavoratore == nome){
  2.  
  3. [...]
  4.  
  5. }



dove nome e Info[10].lavoratore sono variabili di tipo char

8-|

Ultima modifica effettuata da rob il 26/12/2013 alle 12:37


Rob
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:45
Giovedý, 26/12/2013
Testo quotato

Postato originariamente da rob:
non ho trovato niente da nessuna parte!
  



Questo Ŕ impossibile.

Il problema Ŕ che tu non hai idea delle basi minime del linguaggio e per questo fai un bel po' di confusione.

Tutta questa roba sta nei primi capitoli di un libro di C/C++ quindi Ŕ da quei capitoli che dovresti iniziare.

Quando scrivi Info[10] ti stai riferendo ad un vettore di strutture (all'elemento 10).
Il campo lavoratore e nome non possono essere char ma array di char.
Se sono array di char, come ti Ŕ stato detto, NON puoi usare == ma devi utilizzare la funzione strcmp
Se stai lavorando in C++ non ha senso usare gli array di char, ma come detto, utilizza le string


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
rob (Normal User)
Newbie


Messaggi: 16
Iscritto: 16/11/2013

Segnala al moderatore
Postato alle 13:55
Giovedý, 26/12/2013
Perfetto!
Grazie ;)


Rob
PM Quote