Methode strcat implementieren

canyakan95

Bekanntes Mitglied
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:
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
 

sascha-sphw

Top Contributor
Ich würde es so machen. Meine C++ Zeiten sind aber schon eine Weile her...
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;
}
 

Ähnliche Java Themen

Neue Themen


Oben