Questo programma (corretto e funzionante) prende una frase (preimpostata) e restituisce in output la frase senza le s.
Codice:#include <stdio.h> #include <string.h> #include <stdlib.h> char * cancella(char *str, char c) { int i, j=0; char *app; app=(char*) malloc(strlen(str)+1); for (i=0; i<= strlen(str); ++i) if (str[i]!=c) app[j++]=str[i]; str=(char*) malloc(strlen(app)+1); strcpy(str, app); free(app); return str; } main() { char *s="sschissa se ss s sfunzionassssss"; printf("La frase da esaminare è: %s\n", s); printf("%s\n", cancella(s, 's')); }
Qui ho provato a cambiare il main per permettere di personalizzare la frase prendendola in input da tastiera, ma non riesco a trovare il bandolo della matassa perchè va sempre in segmentation fault. Dove sbaglio?
EDIT:Codice:main() { char x[2], y[100]; char *a="s", *b="n"; char *s="sschissa se ss s sfunzionassssss"; printf("La frase da esaminare è: %s\n", s); printf("Vuoi cambiare la frase? s/n\n"); scanf("%s", x); if (strcmp(x, b)==0) printf("%s\n", cancella(s, 's')); else if (strcmp(x, a)==0) { printf("Scrivi la nuova frase:\n"); gets(y); printf("%s\n", cancella(y, 's')); } else printf("Opzione non valida\n"); }
ho corretto un errore, ma continua a non funzionare...

LinkBack URL
About LinkBacks
--

