strstr:
// strstr#include <stdio.h>char *Strstr(const char *strLong, const char *strShort){char *cp = (char *)strLong;// cp是當前strShort的頭在strLong中的位置char *pL = NULL;char *pS = NULL;if ('\0' == *strShort)return (char *)strLong;while ('\0' != *cp){pL = cp;pS = (char *)strShort;while ( ('\0' != *pL) && ('\0' != *pS) && (*pL == *pS) ){pL++;pS++;}if ('\0' == *pS)// strShort比完了return cp;cp++;// 不匹配或strLong比完了而strShort還沒比完}return NULL;}int main(int argc, char **argv){char str[] = "lazy";char string[] = "The quick brown dog jumps over the lazy fox";char fmt1[] = " 1 2 3 4 5";char fmt2[] = "12345678901234567890123456789012345678901234567890";char *pdest = NULL;int result = 0;printf( "String to be searched:\n\t%s\n", string );printf( "\t%s\n\t%s\n\n", fmt1, fmt2 );pdest = Strstr( string, str );result = pdest - string + 1;if( pdest != NULL )printf( "%s found at position %d\n\n", str, result );elseprintf( "%s not found\n", str );return 0;}
用的是暴力的字串匹配演算法。