Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Confronto stringhe.
Forum - C/C++ - Confronto stringhe.

Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 7:31
Sabato, 12/01/2008
Ragazzi è possibile confrontare due stringhe?

Per esempio

char nome[0], nome,[0] ;

cout<<"\nInserisci nome: " ;
cin>>nome ;
cout<<"\nInserisci secondo nome: " ;
cin>>nome1 ;

if (nome==nome1)
    istruzioni ;

Io ho provato ma non fa.
C'è qualche altro modo per farlo? Perchè mi servono per fare dei programmi a scuola che richiedono questa operazione.

A un'altra cosa, come si fa a salvare una variabile di tipo char in un'altra?
Se faccio:
nome=nom1 ;
Non fa e neanche con il doppio uguale.

Aiutatemi please :(

PS uso il dev c++

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:13
Sabato, 12/01/2008
con char non so come si fa, ma so che con string si puo fare

Codice sorgente - presumibilmente C/C++

  1. #include<string>
  2. ...
  3.  
  4. string nome1,nome2;
  5. cin>>nome1;
  6. cin>>nome2;
  7. if(nome1==nome2)
  8. istruzioni


e per assegnare il valore di una stringa ad un'altra con string si puo fare nel modo che hai provato con char

Ultima modifica effettuata da il 12/01/2008 alle 14:19
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 15:03
Sabato, 12/01/2008
il confronto si fa con la funzione strcmp, ritorna -1 se la prima string è minore, quindi viene prima alfabeticamente, 0 se sono uguali e 1 se è maggiore quindi viene dopo alfabeticamente.

Per fare lo spostamento devi usare la funzione strcat.

Cercando su cppreference trovi esempi e documentazione approfondita.

Nulla toglie cmq che usanto tu C++ ti conviene di gran lunga usare la classe string, anche perchè le funzioni C per gestire le stringhe trattate come char* sono una più bacata dell'altra.

PM Quote
Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 15:13
Sabato, 12/01/2008
Testo quotato

Postato originariamente da netarrow:

il confronto si fa con la funzione strcmp, ritorna -1 se la prima string è minore, quindi viene prima alfabeticamente, 0 se sono uguali e 1 se è maggiore quindi viene dopo alfabeticamente.

Per fare lo spostamento devi usare la funzione strcat.

Cercando su cppreference trovi esempi e documentazione approfondita.

Nulla toglie cmq che usanto tu C++ ti conviene di gran lunga usare la classe string, anche perchè le funzioni C per gestire le stringhe trattate come char* sono una più bacata dell'altra.


E se il prof. non ha spiegato queste cose un altro metodo ci sarebbe? :P

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 18:17
Sabato, 12/01/2008
reinventarti tu la soluzione, quindi fare una funzione che con un ciclo for fa il confronto di ogni carattere.
E per l'assegnamento una funzione che dati due puntatori (uno allocato e l'altro no) alloca il puntatore nuovo e sempre con un ciclo copi dentro carattere per carattere.

O magari rifare tu la classe string e riscrivere tu l'overload dell'operatore == ecc...

Ad ogni modo se il prof non ha spiegato a fare il confronto e l'assegnazione dubito che esiga che tu ti reinventi le soluzioni.
Forse vuole che ti documenti autonomamente.

PM Quote