View Full Version : Quesito C++
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.
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).
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.
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;
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.