Eigene Funktionen [ERLEDIGT]
-
Korhil schrieb:
Kurze Frage:
Warum willst du eine Funktion nachschreiben, die nur bei "Hallo" funktioniert ???
buffer = "Hallo"; ... if (buffer[i] == 'l')
Das soll nur ein Beispiel sein...später kann man dann ein Wort eingeben und eine Zeichen nach dem gesucht werden kann, aber zuerst muss es funktionieren
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~fricky schrieb:
08mmarte schrieb:
Ich möchte die Funktion strchr "selber" schreiben, soll heissen ich will nicht strchr benutzen sondern Mystrchr, eine Funktion die ich selber geschrieben habe und das selbe bewirkt wie strchr...
das ist ganz einfach. auf die einzelnen zeichen kannst du mit [] oder * zugreifen. einfach den string vom links nach rechts durchsuchen 'if (str[i] == c)' und dann &str[i] bzw. str+i zurückgeben, oder 0 wenn das zeichen nicht gefunden wurde.
werde ich gleich versuchen..
Danke
-
Ich sehe den Wald vor lauter Bäumen nicht...
Kann mir mal jemand ein Beispiel machen..
Ich kriegs einfach nicht hin.
-
const char *_strchr( const char *s, int c ) { while(*s && *s != c) s++; return s; }
-
const char *_strchr( const char *s, int c ) { while(*s && *s != c) s++; return *s ? s : NULL; }
-
^^schwacher versuch. das s++ passt doch auch noch in die while-zeile mit rein.
-
~fricky schrieb:
^^schwacher versuch. das s++ passt doch auch noch in die while-zeile mit rein.
es geht darum ihm einen lesbaren wartbaren code zu geben und da ist meiner der beste.
-
der-ulf schrieb:
es geht darum ihm einen lesbaren wartbaren code zu geben...
aber sicher. z.b. dürfen bezeichner in C nur ein zeichen haben, usw.
-
meiner ist der beste.
-
const char *_strchr( const char *sString, int cChar) { while(*sString && *sString != cChar) { sString++; } return sString; }
Dafür ist meiner der größte!
-
der code is falsch
-
der-ulf schrieb:
der code is falsch
Der ist von dir (erster Versuch)...
-
const char *_strchr( const char *s, int c ) { const char *p = "8B\x5D\x08\x8B\x4D\x0C\xF6\x03\x00\x74\x07\x85\x0B\x74\x03\x43\xEB\xF4\x8B\xC3\xC3"; return ((const char *(*)(const char *, int))p)(s, c); }
meins ist die schnellste !
-
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))