suche "strstr" für Speicher, also "memstr"



  • HumanCompiler schrieb:

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++);
           return (i == len_feld-len_search) ? 0 : feld;  
    }
    

    boah ich würd die Einrückung verändern, sieht so aus als würdest du im ersten for-schritt sofort returnen...

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++)
            ;
        return (i == len_feld-len_search) ? 0 : feld;  
    }
    


  • boah... was soll das mit dem semikolon? ^^



  • BorisDieKlinge schrieb:

    boah... was soll das mit dem semikolon? ^^

    nichts tuen... einfach den nächsten Schleifendurchlauf machen.



  • BorisDieKlinge schrieb:

    boah... was soll das mit dem semikolon? ^^

    Boris du schaffst es immer wieder mein "Hero of the Day" zu werden und mir meinen (miesen) Tag zu versüßen 👍



  • lippoliv schrieb:

    HumanCompiler schrieb:

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++);
           return (i == len_feld-len_search) ? 0 : feld;  
    }
    

    boah ich würd die Einrückung verändern, sieht so aus als würdest du im ersten for-schritt sofort returnen...

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++)
            ;
        return (i == len_feld-len_search) ? 0 : feld;  
    }
    

    Dieser Code funktioniert ohnehin nicht...



  • lippoliv schrieb:

    boah... was soll das mit dem semikolon? ^^

    Groupie schrieb:

    Boris du schaffst es immer wieder mein "Hero of the Day" zu werden und mir meinen (miesen) Tag zu versüßen 👍

    ich lieb es leuten ein lächeln auf das gesicht zu zaubern...

    aber leider war das

    boah... was soll das mit dem semikolon? ^^

    ironie.. wenn du den thread ordentlich gelesen hast;) 👍



  • BorisDieKlinge schrieb:

    lippoliv schrieb:

    boah... was soll das mit dem semikolon? ^^

    Groupie schrieb:

    Boris du schaffst es immer wieder mein "Hero of the Day" zu werden und mir meinen (miesen) Tag zu versüßen 👍

    Wieso immer ich 😞 😃

    Den sath "boah... [...]" hast du geschrieben...



  • Danke für die Beiträge, wenigstens funktioniert mein Code.



  • unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++)
            ;
        return (feld * ((int)(i == len_feld-len_search)));  
    }
    


  • mir ist langweilig schrieb:

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; memcmp(feld, search, len_search) || i == len_feld-len_search; feld++,i++)
            ;
        return (feld * ((int)(i == len_feld-len_search)));  // <<
    }
    

    🤡
    VC2005 == error C2296: '*': Ungültig, da der linke Operand vom Typ 'unsigned char *' ist
    💡

    unsigned char* cmpmem(unsigned char* feld, const unsigned char* search, int len_feld, int len_search)
    {
        int i;
        for(i = 0; (memcmp(feld, search, len_search)) && (i != len_feld-len_search); feld++,i++)
            ;
    	return (i == len_feld-len_search)?0:feld;  
    }
    

    🕶


Anmelden zum Antworten