Methode strcat implementieren

Dieses Thema Methode strcat implementieren im Forum "C/C++" wurde erstellt von canyakan95, 2. Nov. 2016.

Thema: Methode strcat implementieren Hallo ich soll die Methode char * stringcat(const char *str1, const char *str2) implementieren. Ich weis, dass ich...

  1. Hallo ich soll die Methode char * stringcat(const char *str1, const char *str2) implementieren.
    Ich weis, dass ich bis zum ende von str1 laufen muss und dann str2 dort weiter einfügen muss.
    Habe auch einen Ansatzt, nur verstehe ich leider nicht ganz, wie ich es schaffe str1 und str2 richtig zusammenzufügen.

    Mein Code:
    Code (C):
    char * stringcat(const char *str1, const char *str2){
       
        while(*str1){  // end of the string
            str1++;
        }
        char * dest = str1;
        char * src = str2;
       
        while(*src++ != '\0' ){
        dest = ++*src;
        }
        return dest;
    }
    Mit disem Code bekomme ich die Fehlermeldung : Bus Error 10
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. Ich würde es so machen. Meine C++ Zeiten sind aber schon eine Weile her...
    Code (C):
    const size_t stringlen(const char* str) {
        size_t len = 0;
        while (*str != '\0') {
            len++;
            str++;
        }
        return len;
    }

    const char* stringcat(const char* str1, const char* str2) {

        const size_t len1 = stringlen(str1);
        char* concat = new char[len1 + stringlen(str2) + 1];

        size_t current = 0;
        while(*str1 != '\0') {
            concat[current++] = *str1;
            str1++;
        }
        while (*str2 != '\0') {
            concat[current++] = *str2;
            str2++;
        }
        concat[current] = '\0';
        return concat;
    }

    int main()
    {
        const char* str1 = "Hallo ";
        const char* str2 = "Du";

        const char* result = stringcat(str1, str2);

        printf(result);
        return 0;
    }