Ciao ragazzi, sto studiando gli array e ho un problema con un codice. Da quello che ho capito su gli array, imposto il tipo (int, char ecc...), imposto una variabile, e per ciascun indice assegno un valore; fin quando si è trattato di array di tipo int non ho avuto grosse difficoltà, ma questo array di tipo char non lo capisco; il codice è questo:
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
char stringa[12] = {0};
cout<<"scrivi \"hello there\": ";
cin>>stringa;
cout<<"\nstringa e': "<<stringa; //visualizza solo "hello"
cin>>stringa;
cout<<"\nstringa e': "<<stringa; //visualizza solo "there"
system("pause");
}
lasciando 12 spazi in memoria, pensavo che l'array stringa avrebbe preso tutti i caratteri dell'input "hello there" (compreso il carattere nullo \0) e li assegnasse ai sui indici; per fare una ulteriore verifica ho inserito un ciclo for per ricevere il valore di un dato indice, ma a seconda di dove metta il for, dopo il primo o il secondo cin>>, visualizza solo "hello" o "there", lasciando i restanti indici a 0
for(int i = 0; i<12; i++)
cout<<"char["<<i<<"]"<<" "<<stringa<<endl;
sto usando visual c++ 2008 express edition come compilatore.
grazie, ciao