Hilfe bei C programm



  • Hallo!

    Ich bräuchte ein Programm das in einem Wort nach jedem 2 buchstaben einen anderen buchstaben einfügt?
    Aber das programm soll variabel sein so das ich es leicht umändern kann, dass nach jedem 3 oder 4 buchstaben der andere buchstaben kommt.

    zb
    Hausnummer --> Hbabubsbnbubmbmbebrb oder eben Habusbnubmmberb

    Ich ahbe mir das irgendwie so gedascht aber es funktioniert nicht warum?

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    char *satz = "Hausnummer";
    char buchstabe = 'b';

    int counter = 0;
    int counter_2 = 0;
    int lenght = strlen(satz);
    int new_lenght = lenght * 2;
    char *neww = malloc(sizeof(char) * new_lenght);

    if(counter % 2 == 0)
    {
    neww[counter] = satz[counter_2];
    counter++;
    counter_2++;
    }
    else
    {
    neww[counter] = buchstabe;
    counter++;
    }

    neww[new_lenght + 1] = '\0';
    printf("%s\n", neww);
    system("PAUSE");
    return 0;
    }



  • 1. Du besorgst Speicher für Text der Länge new_lenght.
    Da der Index bei 0 anfängt, existiert das Element neww[new_lenght] nicht.
    Du greifst aber sogar auf neww[new_lenght + 1] zu

    2. Wie oft werden denn die Zeichen erstzt?
    Lass dir mal am Ende counter, counter_2 und lenght ausgeben.

    Nutze beim nächsten mal die Code-Tags.


Anmelden zum Antworten