Salve a tutti, tra non molto ho l'esame di programmazione 1 e avrei una grossa lacuna che spero possiate colmare.
Posto prima un pezzetto della traccia:
Non ho ben capito cosa intende per allocazione dinamica della stringa."Si realizzi in C++ la classe PacchettoRegalo che preveda le variabili membro:
- Destinatario, di tipo stringa (allocata dinamicamente)
- Peso (di tipo float, si consideri espresso in grammi)
- Forma, di tipo stringa (allocata dinamicamente)"
Io ho pensato a una cosa del genere:
Ovvero metto l'input in una stringa buffer di lunghezza fissa, calcolo la lunghezza effettiva dell'input e successivamente alloco in memoria lo spazio necessario a contenerla.codice:const int DMAX=100; typedef char buffer[DMAX]; int strlung(buffer); void strinput(char *&); int main(int argc, char *argv[]) { char * stringa; strinput(stringa); cout << stringa << endl; } int strlung(buffer s){ int i=0; while(s[i]!='\0') i++; return i; } void strinput(char *&s){ buffer strapp; cin >> strapp; s = new char[strlung(strapp)]; s=strapp; }
Ho fatto bene o esiste un modo più semplice?
Inoltre mi considera il carattere ' ' (spazio) come '\0'
Spero possiate aiutarmi, grazie![]()

Rispondi quotando