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; }