Eigene Funktionen [ERLEDIGT]
-
der funzt auf meinem windoof nt mips nur leider nicht!!! mein code ist der beste...
-
der-ulf schrieb:
der funzt auf meinem windoof nt mips nur leider nicht!!!
das funzt noch nicht mal auf 'ner stinknormalen windosen-box.
-
sry musste meinen noch verbessern
const char *_strchr( const char *s, int c ) { while(*s && *s != c) s++; return c == 0 ? s : *s ? s : NULL; }
-
und nun das ganze ohne const return bitte...
-
naja sowas is völlig unwichtrig..es geht ums prinzip
-
char *_strchr( char *s, int c ) { while(*s && *s != c) s++; return c == 0 ? s : *s ? s : NULL; }
-
char *__strchr( char *s, int c ) { return ((char *(*)(char *, int)) (char*)"\x8b\x44\x24\x04\x8b\x54\x24\x08\ \x8a\x08\x84\xc9\x74\x0f\x0f\xbe\xc9\x3b\ \xca\x74\x08\x8a\x48\x01\x40\x84\xc9\x75\ \xf1\x85\xd2\x74\x08\x8a\x10\xf6\xda\x1b\ \xd2\x23\xc2\xc3")(s, c); }
-
#define ___strchr(s,c) (((char *(*)(char *, int))\ (char*)"\x8b\x44\x24\x04\x8b\x54\x24\x08\ \x8a\x08\x84\xc9\x74\x0f\x0f\xbe\xc9\x3b\ \xca\x74\x08\x8a\x48\x01\x40\x84\xc9\x75\ \xf1\x85\xd2\x74\x08\x8a\x10\xf6\xda\x1b\ \xd2\x23\xc2\xc3")(s, c))
-
wenn schon, dann so:
unsigned char *_strchr( const unsigned char *s, int c ) { while(*s && *s != c) s++; return *s ? s : NULL; }
-
Nein, so:
unsigned char *_strchr(const unsigned char *s, int c) { while(*s && *s != c) s++; return *s ? s : 0; }
-
nö das is leider komplett falsch.
The terminating null-character is considered part of the C string. Therefore, it can also be located to retrieve a pointer to the end of a string.
-
mein code ist der beste...
-
Sorry, dass ich erst so spät antworte, war 2 Wochen weg...
Welcher ist jetzt der einfachste, beste, schnellste Code???
Ich möchte nicht den schnellsten, den besten, den grössten oder was auch immer einzel ausprobieren....mfg 08mmarte
-
der-ulf schrieb:
#define ___strchr(s,c) (((char *(*)(char *, int))\ (char*)"\x8b\x44\x24\x04\x8b\x54\x24\x08\ \x8a\x08\x84\xc9\x74\x0f\x0f\xbe\xc9\x3b\ \xca\x74\x08\x8a\x48\x01\x40\x84\xc9\x75\ \xf1\x85\xd2\x74\x08\x8a\x10\xf6\xda\x1b\ \xd2\x23\xc2\xc3")(s, c))
-
Vielen Dank...
-
der-ulf, troll doch bitte in einem 1337-h4xx0rz-Ph0rum, aber nicht hier. Danke.
@ 08mmarte: Die beste Variante ist in den meisten Fällen bereits bestehenden Code zu übernehmen. strchr() gibts in der Standard-C-Library.
-
Tim schrieb:
der-ulf, troll doch bitte in einem 1337-h4xx0rz-Ph0rum, aber nicht hier. Danke.
@ 08mmarte: Die beste Variante ist in den meisten Fällen bereits bestehenden Code zu übernehmen. strchr() gibts in der Standard-C-Library.
Ist mir bekannt, aber ich "darf" diese fuktion selber schreiben....
-
08mmarte schrieb:
Ist mir bekannt, aber ich "darf" diese fuktion selber schreiben....
man "darf" ohnehin jeder Funktion neu schreiben, aber wozu das Rad ständig neu erfinden? Die Funktionen, der glibc sind in der Regel vorzuziehen, weil sie u.a. für deine Plattform optimiert sind.
-
Danke, aber könnt ihr mir hierbei trotzdem helfen:
char *Mystrchr(const char *str, int c) { int i = 0; char *pointer = 0; while (i < Mystrlen(str)) { if (str[i] == c) { *pointer = str[i+1]; printf ("%c ist an der %d. Stelle\n", *pointer, i+1); } i++; } return (0); }
Fehlermeldung
Die Anweisung in "0x00411707" verweist auf Speicher in "0x00000000. Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden.
Werde nicht schlau draus...
-
Tim schrieb:
der-ulf, troll doch bitte in einem 1337-h4xx0rz-Ph0rum, aber nicht hier. Danke.
@ 08mmarte: Die beste Variante ist in den meisten Fällen bereits bestehenden Code zu übernehmen. strchr() gibts in der Standard-C-Library.
das is kein troll, haste was schnelleres anzubieten? nein also m0wl p0well