ersetzen



  • Wo haperts denn genau? 😞

    MfG SideWinder



  • ich versuch das jetzt noch einmal codetechnisch umzusetzen...
    die logik hab ich ja verstanden (also bin ich doch nicht so dumm)

    mfg saroll



  • so, hier is mein neuer code...
    aber irgendwie will das ding nicht so wie ich will

    for(i;i<strlen(Temp2);)
                  {if(str[i]=='(')
                     {buffer[i]='\\';
                      buffer[i+1]='(';
                      i+=2;
                      buffer = (char*) malloc (sizeof(buffer) + 2);
                     }
                  else if(str[i]==')')
                         {buffer[i]='\\';
                          buffer[i+1]=')';
                          i+=2;
                          buffer = (char*) malloc (sizeof(buffer) + 2);
                         }
                  else
                     {buffer[i]=str[i];
                      i++;
                     }
                  }
    

    mfg saroll 🤡🤡🤡

    ps.: immer noch das selbe prob wie vorhin



  • for(i;i<strlen(Temp2);)
    

    du musst i mit 0 initialisieren

    buffer = (char*) malloc (sizeof(buffer) + 2);
    

    und du versuchst den buffer mit malloc zu erweitern das wird nicht gut gehen entweder du verwendest realloc (beim ersten Aufruf verhält sich realloc wie malloc)
    gib dem buffer zu Beginn mal eine konstante groeße ist einfacher 😉



  • so, ich hab dem buffer ne konstante gegeben und es rennt jetzt auch
    aaaber er spuckt mir am ende irgendwelchen sch** aus...
    das find ich voll nicht in ordnung 😞 😞

    mfg saroll

    ps:
    noch einmal der code

    for(i=0;i<strlen(Temp2);)
                  {if(str[i]=='(')
                     {buffer[i]='\\';
                      buffer[i+1]='(';
                      i+=2;
                     }
                  else if(str[i]==')')
                         {buffer[i]='\\';
                          buffer[i+1]=')';
                          i+=2;
                         }
                  else
                     {buffer[i]=str[i];
                      i++;
                     }
                  }
    


  • realloc() ist vielleicht für den Anfang tatsächlich logischer als einen Zweitbuffer zu verwenden.

    gib dem buffer zu Beginn mal eine konstante groeße ist einfacher

    Dafür kannst du die Funktion in die Tonne werfen.

    MfG SideWinder



  • naja wahrscheinlich hast du vergessen den string abzuschließen.
    c-artige strings haben ja am Ende eine binaere null '\0' kennst du sicher.
    du musst also den buffer mit einer null abschließen dann müsste es funktionieren

    buffer[i] = 0;
    // oder halt so
    *buffer = 0;
    


  • SideWinder schrieb:

    Dafür kannst du die Funktion in die Tonne werfen.

    ja ist eh klar, ich meinte natürlich nur fürn anfang wenns programm dann einmal läuft kann ers ja ersetzen



  • Ist das Problem jetzt eigentlich schon gelöst, oder happerts noch wo?



  • hallo!!

    das problem ist gelöst, ich mache es zwar statisch aber es reicht so 😉
    danke an alle die geholfen haben 🤡🤡

    mfg saroll 🤡🤡


Anmelden zum Antworten