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++ - array di caratteri da ordinare alfabeticamente
Forum - C/C++ - array di caratteri da ordinare alfabeticamente - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 15:11
Giovedì, 19/07/2007
:D:D:D:D:D:D:D:D:D
Scusate per l'immenso errore, chiedo venia.
Studiando java, ho preso l'abitudine di considerare le stringhe come oggetti, non come array di caratteri come avviene in C++.
:D:D:D:D:D

PM Quote
Avatar
andry89mm (Member)
Pro


Messaggi: 128
Iscritto: 21/12/2006

Segnala al moderatore
Postato alle 16:12
Giovedì, 19/07/2007
Scusate ragà:
ma una stringa dichiarata come array alfanumerico, si prende in input col
Codice sorgente - presumibilmente Plain Text

  1. cin>>

??
ES.:
Codice sorgente - presumibilmente C/C++

  1. char Stringa[30];
  2. cout<<"Inserisci la stringa : "
  3. cin>>Stringa; //???


Pensavo si utilizzasse :
Codice sorgente - presumibilmente Plain Text

  1. gets(Stringa);


...scusate se sn andato un pò OT, ma non ritenevo opportuno aprire un nuovo topic solo per questa precisazione..

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 16:27
Giovedì, 19/07/2007
Andrea quando inserisci una stringa e la leggi col
Codice sorgente - presumibilmente Plain Text

  1. cin >> qualcosa;


C'è un problema, è corretto certo, ma avviene questa cosa:
Codice sorgente - presumibilmente Plain Text

  1. cin >> str; //inserisco la frase: "ciao bello"
  2. cout << str;


Il programma stamperà la stringa "ciao", perchè la stringa viene letta fino al carattere NULL.
Con gets() viene risolto questo problema, perchè viene incluso anche il carattere NULL.

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 15:07
Venerdì, 20/07/2007
gets è una funzione C non C++(ma vanno lo stesso ovviamente), e non a caso è super bacata e se un programma la usa permette ad un utente di eseguire codice arbitrario.

Per leggere una linea in C++ è possibile usare

getline(stream, str);

tipo

string str;
getline(cin, str);

oppure string str;

cin >> str;

ma potrebbe essere che come per la vecchia gestione delle stringhe stile array di caratteri il problema dello spazio ci sia anche negli oggetti stringa usando cin >>.

Ultima modifica effettuata da netarrow il 20/07/2007 alle 15:10
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo