Esercizio Stringhe in C

di il
4 risposte

Esercizio Stringhe in C

Ciao a tutti ho questo esercizio in c sulle stringhe:
"Sono date due stringhe s1 e s2. Inserire in una terza stringa u i caratteri di s1 e di s2 alternativamente; quando la stringa più breve tra s1 e s2 si è esaurita, inserire in u ogni carattere dell'altra stringa. Es. I: abc 1234 O: a1b2c34 "
Allora io ho fatto questo:
void ins(char *s1,char *s2,char* u)
{
    int i;
    for(i=0;s1[i]!='\0'||s2!='\0';i++){
        strcat(u,s1[i]);
        strcat(u,s2[i]);
    }
    if(i==strlen(s1)-1)
    {
        for(;s2!='\0';i++)
            strcat(u,s2[i]);
    }
    else if(i==strlen(s2)-1)
    {
        for(;s1!='\0';i++)
            strcat(u,s1[i]);
    }
}
Qualcuno mi può aiutare a capire dove sbaglio?

4 Risposte

  • Re: Esercizio Stringhe in C

    Hai compilato il tuo codice?

    Hai visto cosa succede?
  • Re: Esercizio Stringhe in C

    Io ti suggerirei di iniziare sviluppando (e facendo funzionare) solo la prima parte, ovvero inserire alternativamente i caratteri dell'una e dell'altra stringa, fino al terminatore della stringa più breve.
  • Re: Esercizio Stringhe in C

    Dai coraggio che è semplicissimo, tre righe di codice in un solo ciclo, a patto di non adoperare funzioni di libreria, altrimenti diventa tutto più complicato.
  • Re: Esercizio Stringhe in C

    Invece di strcat(), usa [] per riferirti direttamente alle varie posizioni nelle stringhe e copiare i singoli caratteri come ti serve. Ha ragione Unqualunque: è più facile (ed efficiente). Volendo si potrebbero usare anche i puntatori...
Devi accedere o registrarti per scrivere nel forum
4 risposte