Ciao a tutti!
Chi mi può dire qualè è il listato della funzione strstr della libreria string.h?
cioè vorrei sapere come è stata scritta e non solo la sua firma...!
Grazie in anticipo!
![]()
![]()
Ciao a tutti!
Chi mi può dire qualè è il listato della funzione strstr della libreria string.h?
cioè vorrei sapere come è stata scritta e non solo la sua firma...!
Grazie in anticipo!
![]()
![]()
Debian Sarge 3.01a
Slackware 10.2
Quella che segue e` l'implementazione che si trova in dietlibc 0.29Originariamente inviato da Fabiuz
Chi mi può dire qualè è il listato della funzione strstr della libreria string.h?
codice:#include <sys/types.h> #include <string.h> char *strstr(const char *haystack, const char *needle) { size_t nl=strlen(needle); size_t hl=strlen(haystack); int i; if (!nl) goto found; if (nl>hl) return 0; for (i=hl-nl+1; __likely(i); --i) { if (*haystack==*needle && !memcmp(haystack,needle,nl)) found: return (char*)haystack; ++haystack; } return 0; }
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".
non cè un implementazione più semplice (adatta a studente universitario che non può usare goto e non sa tutte le librerie del C ?
Debian Sarge 3.01a
Slackware 10.2
Eliminare il goto non dovrebbe portare particolari problemi:Originariamente inviato da Fabiuz
non cè un implementazione più semplice (adatta a studente universitario che non può usare goto e non sa tutte le
librerie del C ?
Eliminare le funzioni di libreria senza complicare in modo notevole il codice o riscriversele dubito sia fattibile...codice:#include <sys/types.h> #include <string.h> char *strstr(const char *haystack, const char *needle) { size_t nl=strlen(needle); size_t hl=strlen(haystack); int i; if (!nl) return (char*)haystack; if (nl>hl) return 0; for (i=hl-nl+1; __likely(i); --i) { if (*haystack==*needle && !memcmp(haystack,needle,nl)) return (char*)haystack; ++haystack; } return 0; }
Rimane quel __likely che non avevo notato, credo sia roba interna di dietlibc
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".