Problem mit Stringvergleich



  • Hi, ich muss Pfade vergleichen, aber es klappt irgendwie nicht so.

    char muster = "E:\NEW_WS\Sandbox\Sandbox_2\Write";
    
    char str1 = "E:\NEW_WS\Sandbox\Sandbox_2\Write\Test\Morgen";
    char str2 = "E:\NEW_WS\Sandbox\Sandbox_2\Write2\Test\Gestern";
    

    es soll überprüft werden, ob man sich in einem unterverzeichnis bzw in dem verzeichnis vom muster befindet.

    habe versucht die '\' im muster zu zaählen und bei deren anzahl+1 slashes in str1 und str2 abzuschneiden um dann mit stricmp zu vergleichen.

    allerdings liefert er keine richtigen ergebnisse

    er vergleicht nur bis Sandbox_2 obwohle ich die abgschnittenen mir ansehe und die auch völlig in ordnung sind

    HILFE BITTE



  • Du kannst mit strncmp() nur den ersten Teil des Vergleichspfades in überprüfen (damit werden schonmal völlig unpassende Pfade wie "E:\NEWS_WS\Sandbox\Sandbox_1\..." ausgeschlossen) und anschließend überprüfen, ob hinter dem Muster ein \ kommt (das schließt z.B. den str2 aus):

    if(strncmp(path,muster,strlen(muster)==0 && path[strlen(muster)]=='\\')
      ...//weiter arbeiten
    


  • danke, hab es mit deiner hilfe hinbekommen...


Anmelden zum Antworten