|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
dubbio stringhe c++ un secondo per rispondere!
scusate ma se io voglio passare una stringa da tastiera posso fare
char a[100]; for (int i=0;i<100;i++) cin << a[i]; e al primo carattere nullo si ferma! oppure: char *a; cin << a; i miei dubbi sono 2: -non sono sicuro se char *a lo devo inizializzare subito perche' gli passo una stringa costante; -volevo sapere se con il puntatore a caratteri c'e' un modo per passargli la stringa come nell'array ovvero a pezzi, carattere dopo carattere magari con l'aritmetica dei puntatori, oppure è sbagliato perche' essendo una stringa costante la devo passare tutta insieme! |
|
|
|
|
|
#2 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Re: dubbio stringhe c++ un secondo per rispondere!
Quote:
Codice:
cin >> a; // occhio alla direzione ! >> e non << Se leggere una riga alla volta devi usare Codice:
cin.getline( a , 100 ); Codice:
cin.getline( a , 100 , EOF ); la getline del secondo esempio non leggera' tutta la riga. Peggio ancora, se inserisci piu' di 100 caratteri senza spaziature cin >> a sforera' l'array con nefasti risultati. Una soluzione parziale al secondo problema puo' essere la segue: Codice:
cin.getline( a , 100 , ' ' ); Usare il puntatore non e' molto differente, devi pero' inizializzare l'array: Codice:
char* a; a = new char[100]; ... ( const char* x = "ciao" lo e'). In ogni caso non e' un problema accedere a tali stringhe come se fossero array. Il consiglio mio e' pero' quello di utilizzare le string della libreria C++ per la lettura, molto piu' pratiche. Al piu' poi ti copi quel che ti serve in una stringa "stile C". |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:53.



















