Esercizio prova d'esame università

di il
5 risposte

Esercizio prova d'esame università

Salve,
questo è il mio primo post, mi sono iscritt operchè spesso ho visitato questo forum per capire meglio alcune ose.
Dovrò sostenere un esame scritto tra una settimana e tra le prove d' esame degli anni precedenti c'è questo esercizio che non ho saputo risolvere. Qualcuno che mi aiuti? Grazie in anticipo!

Scrivere una funzione che prende in ingresso due stringhe, a e b, e, se vi è una occorrenza
della stringa stringa b all'interno della stringa a, allora elimina la prima occorrenza della stringa b
dalla stringa a. Ad esempio, se alla funzione vengono passate le stringhe “Piu' per piu’” e “meno”,
allora la funzione non modifica la stringa a. Se invece la stringa b è la stessa del precedente
esempio, ma la stringa a è “Piu' per meno meno” , allora trasforma la prima stringa in “Piu' per
meno ”.

5 Risposte

  • Re: Esercizio prova d'esame università

    Come vorresti essere aiutato?
  • Re: Esercizio prova d'esame università

    Puoi usare strstr(), strlen() e strcpy() da string.h per mettere insieme una funzione int elimina_sottostringa( char *s, const char *ss ).

    In elimina_sottostringa(), una volta verificata la validità dei parametri, puoi cercare in s la sottostringa ss, con strstr().

    Se strstr() restituisce un puntatore valido (chiamiamolo p), puoi copiare in p quel che c'è a partire da p+strlen(ss), usando semplicemente strcpy().
  • Re: Esercizio prova d'esame università

    Se mi permettete metto anche la mia idea
    In 'C'
    Creo una funzione che restituisce un puntatore a carattere, e accetta due puntatori, stringa dove cercare, stringa da cercare
    Due indici, in stringa a e in stringa b
    Scorro la stringa a contando l'indice fino a trovare 0
    Se i valori indicizzati dai due indici nelle due stringhe sono uguali avanzo il secondo indice
    Se così facendo il secondo indice arriva alla fine della seconda stringa, riporto indietro il primo del valore del secondo, copio avanzando la parte finale della prima stringa nella nuova retrocessa posizione e restituisco il puntatore alla prima stringa
    Magari stasera da pc provo a scriverlo
  • Re: Esercizio prova d'esame università

    Solo per dire che ho provato, per pura curiosità, il metodo che ho suggerito, e come speravo va
  • Re: Esercizio prova d'esame università

    StandardOil ha scritto:


    Se mi permettete metto anche la mia idea
    In 'C'
    Creo una funzione che restituisce un puntatore a carattere, e accetta due puntatori, stringa dove cercare, stringa da cercare
    Due indici, in stringa a e in stringa b
    Scorro la stringa a contando l'indice fino a trovare 0
    Se i valori indicizzati dai due indici nelle due stringhe sono uguali avanzo il secondo indice
    Se così facendo il secondo indice arriva alla fine della seconda stringa, riporto indietro il primo del valore del secondo, copio avanzando la parte finale della prima stringa nella nuova retrocessa posizione e restituisco il puntatore alla prima stringa
    Magari stasera da pc provo a scriverlo
    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
5 risposte