# Methode strcat implementieren



## canyakan95 (2. Nov 2016)

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: 

```
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


----------



## sascha-sphw (2. Nov 2016)

Ich würde es so machen. Meine C++ Zeiten sind aber schon eine Weile her...

```
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;
}
```


----------

