Originariamente inviato da Michele Facchin
Sinceramente da quello che ho capito il problema è questo:
NULL <--> A <--> B <--> C <--> D <--> E <--> F <--> G <--> H <--> NULL
Questa è la lista.
Io devo prendere due puntatori agli elementi di questa lista.
P1 e P2 che puntano rispettivamente a "B" e a "F", in più un numero che mi dica quanti elementi sucessivi devono avere.
Quindi il prototipo della funzione può essere tranquillamente:
codice:
char *f (CharElem *p1, CharElem *p2, int n);
Adesso basta che fai due controlli per vedere se per ogni puntatore, si possano acquisire gli n elementi sucessivi, cioè se n non superi il limite di elementi.
Poi scorri da una parte, scorri dall'altra..e concateni ogni carattere con la sua stringa rispettiva, cosi da crearne 2 diverse.
Poi rifai il procedimento per queste due, e ritorni la stringa.
Non mi ricordo se esiste una funzione per convertire da char a char *, ma mi pare di nò.
Comunque in questo modo dovrebbe funzionare lostesso:
codice:
sprintf (s, "%c", p1 -> elemento);
Dove s è una stringa (
char *), mentre "p -> elemento" è un carattere (
char) che naturalmente è il tipo di elemento contenuto nella tua lista.