ho un programma (una sorta di rudimentale editor di testo) nel quale ho la necessità, in una funzione, di ritornare una stringa.
Ho definito un tipo "Testo" così:
con le seguenti funzionicodice:typedef struct { char *p; int nr; // numero di colonne int nc; // numero di righe int r0; // riga di visualizzazione su video int c0; // colonna di visualizzazione su video } Testo;
questa è la funzione stringaDi()codice:Testo nuovo(int nr, int nc); // costruttore void distruggi(Testo& t); // distruttore int nRighe(Testo& t); //ritorna il numero di righe int nColonne(Testo& t); //ritorna il numero di colonne void assegna(Testo& t,int i,int j,char ch); //inserisce un carattere nella posizione i,j (si tratta di una sorta di matrice fatta mediante l'uso di una stringa sulla quale calcolo il numero di colonne e righe per effettuare gli inserimeni) es: t.p[9] = 'a' char carattere(Testo& t, int i, int j); //ritorna un carattere nella posizione i,j es: return t.p[3]; void load(Testo& t, char *nomefile); //carica il testo da un file sulla stringa t.p void show(Testo& t, int r0, int c0); //visualizza il testo dalla stringa t.p sullo schermo con le funzioni grafiche void edit(Testo& t); //gestisce l'immisione del testo tramite la grafica void save(Testo& t, char *nomefile); //salva su file il contenuto di t.p char* stringaDi(Testo& t); //deve tornarmi tutta la stringa t.p
il problema stà nel richiamarla dal main perchè ho bisogno di metterla in un altra stringa che poi devo comparare.codice:char* stringaDi(Testo& t) { return t.p; }
scusate se il messaggio è prolisso, ma non sapevo come spiegare il mio problema altrimenti, anche perchè le mie conoscenze sono limitate (questo è un programma che devo fare per scuola!)codice:char* comando=stringaDi(t) //non funziona
grazie a tutti quelli che vorranno darmi una mano


Rispondi quotando
