Salve io ho fatto questo codice con il dev-c++:
Mi dice in:Codice:/* per la specifica dell'esercizio vedi prima esercitazione autoguidata - es. 1.8 */ #include <stdio.h> #include <stdlib.h> #include<string.h> #define N 40 #define MAXLUNG 50 /* ****** dichiarazioni delle funzioni usate ****** */ void aggiungi (char *v[], char *, int *); int ricerca (char *[], int , char *); void sostituisci (char *v[], int quante, char * quale, char *conChi); void stampaStringhe (char *v[], int quante); main(){ int i, scelta, numeroStringhe; /* per sapere quante stringhe sono nell'array */ char *stringhe[N], /* array di N stringhe */ buffer[MAXLUNG+1], buffer2[MAXLUNG+1]; numeroStringhe=0; /* inizializzazione del numero di stringhe presenti nell'array */ do { printf(" - scegli -\n"); printf(" - aggiunta (1) -\n"); printf(" - sostituzione (2) -\n"); printf(" - stampa (3) -\n"); printf(" - fine (0) -\n"); scanf("%d", &scelta); switch (scelta) { case 1: printf("stringa di al piu' %d caratteri: ", MAXLUNG); scanf("%s", buffer); /*lettura stringa*/ aggiungi(stringhe, buffer, &numeroStringhe); break; case 2: printf("stringa da sostituire: "); scanf("%s", buffer); printf("stringa con cui sostituirla: "); scanf("%s", buffer2); sostituisci(stringhe, numeroStringhe, buffer, buffer2); break; case 3: printf(" - ecco le stringhe\n"); stampaStringhe(stringhe, numeroStringhe); break; case 0: printf(" - USCITA DAL PROGRAMMA\n"); break; default: printf(" - opzione sballata\n"); } /* fine switch */ } while (scelta!=0); /* fine do_while*/ printf("\nFINE\n"); return 0; } /* ************* funzioni usate ********************** */ /* trova la stringa cercata nell'array v, sapendo che il numero di stringhe presenti in v e' quante restituisce il puntatore alla stringa trovata o NULL */ int ricerca (char *v[], int quante, char *cercata) { int trovata, i; trovata=0; /* inizializzazioni */ for (i=0; ((i<quante)&&(!trovata)) ; i++) /*se troviamo la stringa in v[i], assegnamo trovata in modo che il ciclo si interrompa */ if (strcmp(v[i],cercata)==0) { trovata=1; } /* se ora i vale quante vuol dire che la ricerca della stringa non ha avuto successo (e si restituisce -1); se la stringa e' stata trovata, l'ultima iterazione del ciclo ha - scoperto che v[i] conteneva la stringa cercata - assegnato trovata a 1 - incrementato i di 1 poi il ciclo si e' interrotto quindi l'indice della stringa cercata e' i-1 */ if (i==quante) return -1; else return (i-1); } /* fine ricerca */ void aggiungi (char *v[], char *nuova, int*quante) { if (*quante>=N) /* se non c'e' spazio nell'array */ printf(" - non c'e' spazio nell'array!\n"); else { v[*quante]=malloc(strlen(nuova)+1); /* allocazione stringa */ if (v[*quante]==NULL) printf("problemi in allocazione\n"); else { /* (se possibile) */ strcpy(v[*quante], nuova); /* assegnazione stringa aggiunta e */ *quante += 1; /* incremento del numero di stringhe presenti nell'array */ } /* fine secondo else */ } /* fine primo else */ return; } /* fine aggiungi */ /* sostituisce la stringa quale con la stringa conChi nell'array v, sapendo che ci sono quante stringhe nelle'array */ void sostituisci (char *v[], int quante, char * quale, char *conChi) { int indiceStringa; indiceStringa = ricerca(v, quante, quale); if (indiceStringa==-1) printf("guarda che %s non c'e' ...", quale); else { /* sostituzione */ free(v[indiceStringa]); /* prima si libera la memoria occupata dalla stringa che non serve piu' */ v[indiceStringa] = malloc(strlen(conChi)); /* poi si alloca spazio per la nuova */ /* e poi, se non ci sono stati problemi di allocazione, si copia la nuova stringa in sede */ if (v[indiceStringa]==NULL) printf("problemi in allocazione\n"); else strcpy(v[indiceStringa], conChi); } /* fine primo else */ return; } void stampaStringhe (char *v[], int quante){ int i; for (i=0;i<quante;i++) printf("%s\n", v[i]); return; }
eCodice:v[*quante]=malloc(strlen(nuova)+1); /* allocazione stringa */
invalid conversion from 'void*' to 'char*' che vuol dire? Io mi ci sono sudato a fa sto programma e mi da sto errore?Codice:v[indiceStringa] = malloc(strlen(conChi)); /* poi si alloca
Ma stiamo scherzando?
Grazie a chi mi aiuterà.



Software
LinkBack URL
About LinkBacks
Rispondi Citando

mica ho capito il senso della domanda...
)
...