strcat



  • Da bastelst du dir einmal eine Funktion:

    char * strappend( char *prefix, char *suffix ) {
      char *str = malloc( strlen( prefix ) + strlen( suffix ) + 1 );
      if( !str ) {
        return NULL;
      }
      while( *prefix != 0 ) {
        *str = *prefix;
        ++str;
        ++prefix;
      }
      while( *suffix != 0 ) {
        *str = *suffix;
        ++str;
        ++prefix;
      }
      *str = 0;
    
      return str;
    }
    


  • ficky schrieb:

    Da bastelst du dir einmal eine Funktion:

    das lass besser bleiben. nimm 'strcat' u.ä. die gibts schon fertig.
    🙂



  • __fricky schrieb:

    ficky schrieb:

    Da bastelst du dir einmal eine Funktion:

    das lass besser bleiben. nimm 'strcat' u.ä. die gibts schon fertig.
    🙂

    Die Funktion war auch nur zur Illustration wie man es händisch machen kann. Aber dann mach ich halt mal die Hausaufgaben:

    char * strappend( char *prefix, char *suffix ) {
       char *str = realloc( prefix, strlen( prefix ) + strlen( suffix ) + 1 );
       return strcat( prefix, suffix );
    }
    


  • ficky schrieb:

    __fricky schrieb:

    ficky schrieb:

    Da bastelst du dir einmal eine Funktion:

    das lass besser bleiben. nimm 'strcat' u.ä. die gibts schon fertig.
    🙂

    Die Funktion war auch nur zur Illustration wie man es händisch machen kann. Aber dann mach ich halt mal die Hausaufgaben:

    char * strappend( char *prefix, char *suffix ) {
       char *str = realloc( prefix, strlen( prefix ) + strlen( suffix ) + 1 );
       return strcat( prefix, suffix );
    }
    

    Da hat sich doch glatt der Fehlerteufel eingeschlichen, hier ist die richtige Version:

    char * strappend( char *prefix, char *suffix ) {
       char *str = realloc( prefix, strlen( prefix ) + strlen( suffix ) + 1 );
       return strcat( str, suffix );
    }
    


  • ^^ das ist doch auch mist. mach mal 'ne funktion ohne malloc/realloc.
    🙂



  • __fricky schrieb:

    ^^ das ist doch auch mist. mach mal 'ne funktion ohne malloc/realloc.
    🙂

    Scherzkeks.



  • ficky schrieb:

    __fricky schrieb:

    ^^ das ist doch auch mist. mach mal 'ne funktion ohne malloc/realloc.
    🙂

    Scherzkeks.

    #define str_append (erster, zweiter, da_solls_hin) \
      sprintf (da_solls_hin, "%s%s", erster, zweiter)
    

    🙂



  • __fricky schrieb:

    ficky schrieb:

    __fricky schrieb:

    ^^ das ist doch auch mist. mach mal 'ne funktion ohne malloc/realloc.
    🙂

    Scherzkeks.

    #define str_append (erster, zweiter, da_solls_hin) \
      sprintf (da_solls_hin, "%s%s", erster, zweiter)
    

    🙂

    Scherzkeks, das bringt einem ja null komma nix, da hat man die nötige Speicherallokation ja weiterhin außerhalb von append. Wenn man genug Speicher hat kann man die Funktionen sowieso direkt aufrufen.



  • ficky schrieb:

    ...die nötige Speicherallokation...

    wieso nötig? meinste nicht, dass es auch ohne geht?
    🙂



  • __fricky schrieb:

    ficky schrieb:

    ...die nötige Speicherallokation...

    wieso nötig? meinste nicht, dass es auch ohne geht?
    🙂

    Im allgemeinen nicht.


Anmelden zum Antworten