Elimina un carattere da più stringhe[C]

di il
3 risposte

Elimina un carattere da più stringhe[C]

Ciao a tutti, sto riscontrando un problema con il seguente codice , credo sia unitilizzo malsano dei puntatori di puntatori , o magari ho impostato male la funzione, il codice è questo :
#include<stdio.h>
#include<string.h>
#include<malloc.h>

struct stringhe{

char *str;
};

void delC(char c, char *s);

int main (){

int i,n;
char c;

struct stringhe *arr= (struct stringhe*) malloc(sizeof(struct stringhe));

printf("Dammi il numero di stringhe da memorizzare: ");
scanf("%d",&n);

for(i= 0; i<n; i++ ){
printf("Inserisci la stringa numero %d: ", i+1);
scanf("%s", ((*(arr+i)).str));
}
printf("Dammi il carattere da eliminare su tutte le %d inserite: ", n);
scanf("%s", &c);
for(i=0;i<n;i++){
delC(c,(*((*(arr+i)).str)));
printf("La stringa risultante e': %s", ((*(arr+i)).str));
}
return i;
}


void delC(char c, char *s){

int i,j;

for(i=0, j=0; i<strlen(s); i++)
if(s==c){
s[j] = s[i+1];
j++;
}
s[j]='\0';

s=(char*) realloc(s, (j+1)*sizeof(char));
}

qualcuno mi può aiutare a capire dove sbaglio???
grazie a tutti per la disponibilità.

3 Risposte

  • Re: Elimina un carattere da più stringhe[C]

    Utilizza i tag code per il codice e spiega meglio cosa devi fare e cosa non ti riesce
  • Re: Elimina un carattere da più stringhe[C]

    Devo cancella un carattere su tutte le stringhe, che vorrei memorizzare in una struttura che ho chiamato stringhe, e per farlo ho definito una funzione.
    il programma memorizza le stringhe ma la funzione non funziona.... scusate il gioco di parole.
  • Re: Elimina un carattere da più stringhe[C]

    Nella funzione usi j che ha valore 0 all'inizio, quindi copi il carattere successivo a quello trovato a partire dal primo carattere della stringa, distruggendola ... che senso ha questo modo di operare? Rifletti meglio
Devi accedere o registrarti per scrivere nel forum
3 risposte