PDA

View Full Version : Quesito C++


gio84
21-02-2005, 10:47
Salve ragazzi sto imparando il linguaggio c++ e come compilatore utilizzo visual c++ 6 .
Avrei una domanda da porvi, quando eseguo un'istruzione if utilizzando tipi struct (es: if (persona1[c].num==x) )
dove x e il campo num sono di tipo char[15] cioè delle stringhe, non mi esegue questo confronto pur essendo la condizione vera, com'è possibile?
Il c++ non fa il confronto diretto tra stringhe?

ilsensine
21-02-2005, 10:57
Usa la funzione strcmp per confrontare le stringhe; oppure (visto che usi il c++) utilizza una classe per le stringhe.

gio84
21-02-2005, 11:15
la classe come la posso usare con
#include <string.h>
e poi?

ilsensine
21-02-2005, 11:23
string.h non definisce classi. Forse il toolkit c++ che usi ne definisce qualcuna, altrimenti puoi scriverne una tu o cercare qualche soluzione in rete. Credo che nelle stl ci sia qualche tipo di supporto, ma non ne so molto.
Se non sai che pesci pigliare al momento usa strcmp; ricorda che restituisce 0 se le stringhe sono uguali.

ilsensine
21-02-2005, 11:53
Con le stl puoi utilizzare l'oggetto std::string; per definirlo devi includere <string> (senza .h).

gio84
21-02-2005, 11:56
ok grazie

gio84
21-02-2005, 23:25
Ho risolto con strcmp , ho provato xò ad usare anche:
#include <string.h>
#include <string>
e poi ho dichiarato la stringa cosi:
string nome="ciao";

ma non va mi dice che il tipo non è riconosciuto.

cionci
22-02-2005, 15:40
O usi std::string o inserisci using namespace std; per importare tutto il namespace...

http://www.cplusplus.com/doc/tutorial/tut5-2.html

Il caso riportato per cout è identico a quello di string...
Nel nuovo standard gli header non hanno estensione:

#include <iostream.h> diventa #include <iostream>

A tutti gli header della libreria standard C si aggiunge una c all'inzio:

#include <string.h> deiventa #include <cstring>

mentre #include <string> serve per includere la classe string della libreria standard C++...

Tutte le librerie incluse in questo modo sono all'interno del namespace std...quindi se usi molte librerie devi inserire using namespace std;