int strStr(char * haystack, char * needle){ int i,j; int hlen=strlen(haystack); int nlen=strlen(needle); if (!nlen) return 0; for (i=0; i<hlen && hlen>=nlen; i++) { if (hlen-i == nlen) { return strcmp(haystack+i,needle)? -1: i; } if (haystack[i] == *needle) { for (j=1; j<nlen; j++) { if (i+j >= hlen || haystack[i+j] != needle[j]) break; } if (j==nlen) return i; } } return -1; }