Precedente :: Successivo |
Autore |
Messaggio |
extra Comune mortale

Registrato: 01/05/08 11:39 Messaggi: 2
|
Inviato: 01 Mag 2008 11:47 Oggetto: gestire record con array |
|
|
Il programma seguente dovrebbe visualizzare la scritta "non trovata nel caso in cui la marca presente nell'array non sia uguale a quella inserita per la ricerca, ma anche se le due stringhe sono uguali (a[i].marca e cars) non esegue il controllo, e come se le due cose fossero diverse ma anche nella stampa si vede che sono uguali, ne conoscete il motivo potete aiutarmi?
Grazie
Codice: | #include <iostream>
#include <stdlib.h>
using namespace std;
main ()
{struct macchina {
char marca[20];
char modello [20];
int vendute;};
macchina a[10];
int i,n;
char cars[20];
cout <<"inserisci n° auto da caricare"<<endl;
cin>>n;
for (i=1; i<=n; i++)
{cout <<"marca"<<endl;
cin>> a[i].marca;
cout<<"modello"<<endl;
cin >>a[i].modello;
cout <<"vendute";
cin>> a[i].vendute;}
cout<<"inserisci marca"<<endl;
cin >>cars;
for (i=1; i<=n; i++)
{if (a[i].marca!=cars)
cout <<"non trovata"<<endl;
cout <<a[i].marca<<" ==" <<cars<<endl;}
system ("pause");} |
|
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 01 Mag 2008 14:21 Oggetto: |
|
|
Premetto che al momento non posso provare il programma e le modifiche che qui ti propongo.
Prima di tutto in C e C++ i vettori sono TUTTI 0-based per cui i cicli for devono partire da 0 e terminare a n-1.
Oltre a questo l'errore sta nel fatto che C non ha un tipo stringa primitivo; non puoi usare gli operatori ==, !=,>,<, etc... per confrontare 2 stringhe; devi usare la funzione strcmp(str1,str2) che ritorna -1 se str1<str2 in ordine alfabetico, 0 se str1==str2 in ordine alfabetico (le stringhe sono uguali), 1 se str1>str2 in ordine alfabetico.
Vedo che tu hai mischiato un po' di C e un po' di C++ usando però il concetto di stringa tipico di C.
Lo standard C++ prevede la gestione delle stringhe come oggetto.
C++ reference guide
Scusa la pochezza della spiegazione ma sono di volata!
L'ultima modifica di freemind il 03 Feb 2009 22:47, modificato 1 volta |
|
Top |
|
 |
extra Comune mortale

Registrato: 01/05/08 11:39 Messaggi: 2
|
Inviato: 01 Mag 2008 21:22 Oggetto: |
|
|
non è per niente poco quello che mi hai detto sono riuscito a comprendere dove era il mio errore.
Grazie.
GRAZIE |
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|