Un paio di funzioni che non mi vanno GIÙ! )=

di il
8 risposte

Un paio di funzioni che non mi vanno GIÙ! )=

Salve a tutti, ho un paio di funzioni che non riesco proprio a capire come farle, ci ho perso il pomeriggio, la consegna sta:
1) Copiare S1 (stringa1) dentro S2 (stringa2) senza usare stringcpy
2) Confronto tra due stringhe (S1,S2) senza usare stringcmp
Come diavolo si fanno?

8 Risposte

  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    1) come lo faresti togliendo dalla testa il concetto che sono delle stringhe ma soltanto dei vettori di caratteri. In questo vettore c'è un elemento = '\0'. Quindi puoi assegnare alla posizione i del s2 il valore del s1 nella posizione i finche nel s1 non trovi il '\0'.
    2) scandisci i vettori finche s1 == s2. Se uno di questi valori è diverso allora le stringhe sono diverse, altrimenti a fine scansione le stringhe sono uguali.
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    skynet ha scritto:


    1) come lo faresti togliendo dalla testa il concetto che sono delle stringhe ma soltanto dei vettori di caratteri. In questo vettore c'è un elemento = '\0'. Quindi puoi assegnare alla posizione i del s2 il valore del s1 nella posizione i finche nel s1 non trovi il '\0'.
    2) scandisci i vettori finche s1 == s2. Se uno di questi valori è diverso allora le stringhe sono diverse, altrimenti a fine scansione le stringhe sono uguali.

    Non ho afferato il concetto, non capisco come riusciresti a farlo senza l'uso del stringcmp e stringcpy
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    http://en.wikipedia.org/wiki/Strcm
    http://en.wikipedia.org/wiki/Strcp
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    Ma lui lo utilizza sia stringcmp che stringcpy
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    Vedi le implementazioni delle funzioni sono spiegate come sono fatte internamente. Così hai risolto il tuo problema.
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    skynet ha scritto:


    vedi le implementazioni delle funzioni sono spiegate come sono fatte internamente. Così hai risolto il tuo problema.
    Cavolo può essere, ma in inglese non sono una cima! Non riesci a spiegarmi tu, il blocchetto dove viene fatta l'operazione senza l'uso dei due comandi?
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    
    strcmp
    int strcmp (const char * s1, const char * s2)
    {
        for(; *s1 == *s2; ++s1, ++s2)
            if(*s1 == 0)
                return 0;
        return *(unsigned char *)s1 < *(unsigned char *)s2 ? -1 : 1;
    }
    
    
    
    strcpy
    char *strcpy(char *dest, const char *src)
    {
      unsigned i;
      for (i=0; src[i] != '\0'; ++i)
        dest[i] = src[i];
      dest[i] = '\0';
      return dest;
    }
    
    
  • Re: Un paio di funzioni che non mi vanno GIÙ! )=

    Adesso ho visto, cavolo è vero! Mitico come sempre! Non deludi mai nessuno!
Devi accedere o registrarti per scrivere nel forum
8 risposte