StrPos problem mit speicherauslastung



  • hi.

    und zwar habe ich ein problem...

    ich möchte die funktion strpos nutzen...

    leider kommt es dadurch zu hohen speicherauslastung...

    also ich habe einen string der durchsucht werden soll...dieser string ist ziemlich groß.

    //der string welcher durchsucht werden soll(hier nur klein)
    char test1[] = "dklaskdasjkdsjksdjhkjasdkjSUCHEdsjdsjksdkjsdjkkjsd";
    char test2[256];
    test2 = strPos(test1, "SUCHE");

    Die Ausgabe von test2 = SUCHEdsjdsjksdkjsdjkkjsd benötige ich. leider ist der string den ich durchsuche etwas größer. was aber nicht das problem seien dürfte. wenn ich die funktion z.B. in eine schleife setzen würde...würde er mir den speicher zumüllen...

    meine frage...warum müllt er den speicher voll???

    p.s. wenn ich statt "test2 = strPos(test1, "SUCHE");
    " den code strPos(test1, "SUCHE"); einfüge...müllt er nix zu.



  • Hallo

    lies dir nochmal die Beschreibung von StrPos in der BCB-Hilde durch.
    Den das muß heißen

    char test1[] = "dklaskdasjkdsjksdjhkjasdkjSUCHEdsjdsjksdkjsdjkkjsd";
    char *Ergebnis
    Ergebnis = StrPos(test1, "SUCHE"); 
    if (Ergebnis != NULL)
    {
      // String gefunden
      }
    

    Außerdem solltest du darüber nachdenken, ob du nicht gleich AnsiString mit Pos()/AnsiPos() oder wenigstens std::string verwenden kannst.

    bis bald
    akari



  • hallo akari!

    vielen dank für deine antwort...genau sowas bräuchte ich.
    mit dieser ansistring methode hab ich mich leider noch nicht befasst. kannst du mir vieleicht ein kleines beispiel mit ansistring geben...eines das auf meinem beispiel aufbaut? währe echt super.



  • Hallo

    ich empfehle dir ein Tutorial, hier mal direkt zum Thema:
    http://bcb-tutorial.c-plusplus.net/Ansi/artikel2.html#AnsiPos

    bis bald
    akari



  • Dank dir nochmal für die super tips und den link...hat echt geholfen...weis jetzt wie ich es machen kann!! Bis bald!


Log in to reply