一天一个CRT函数 strstr
2010-04-16 17:26
399 查看
1.介绍
char *strstr( const char *str, const char *strSearch );
需找str字符串中出现strSearch字符串位置的指针。如果没找到,则返回NULL,如果strSearch为空,则返回str。
2.实现
其实,也就是双重循环比较。
3.测试
4.后记
CRT提供了strstr外,还有strrstr,即反序查找。
当然,STL里也有提供类似的算法—find_fist_of/find_last_of/find_first_not_of/find_last_not_of.
char *strstr( const char *str, const char *strSearch );
需找str字符串中出现strSearch字符串位置的指针。如果没找到,则返回NULL,如果strSearch为空,则返回str。
2.实现
inline tChar *tStrStr(tChar *pStr, tChar *pSubStr) { /* First scan quickly through the two strings looking for a * single-character match. When it's found, then compare the * rest of the substring. */ tChar *b = pSubStr; if( *b == NULL ) { return pStr; } tChar *a = NULL; for( ; *pStr != NULL; pStr++) { if( *pStr != *b ) { continue; } a = pStr; while(1) { if( *b == NULL ) { return pStr; } if( *a++ != *b++ ) { break; } } b = pSubStr; } return NULL; }
其实,也就是双重循环比较。
3.测试
tChar str[] = _T("lazy"); tChar string[] = _T("The quick brown dog jumps over the lazy fox"); tChar *pdest = NULL; int result = 0; pdest = CY_CRT::tStrStr( string, str ); result = (int)(pdest - string + 1);
4.后记
CRT提供了strstr外,还有strrstr,即反序查找。
当然,STL里也有提供类似的算法—find_fist_of/find_last_of/find_first_not_of/find_last_not_of.
相关文章推荐
- 一天一个CRT函数 strcspn
- 一天一个CRT函数 memcmp
- 一天一个CRT函数 _swap
- 一天一个CRT函数 _strlwr/_strupr
- 一天一个CRT函数 strchr
- 一天一个CRT函数 strcoll
- 一天一个CRT函数 _strdec
- 一天一个CRT函数 _memccpy
- 一天一个CRT函数 memset
- 一天一个CRT函数 __toascii tolower toupper
- 一天一个CRT函数 memcpy
- 一天一个CRT函数 strcspn
- 一天一个CRT函数 strpbrk
- 一天一个CRT函数 _memicmp
- 一天一个CRT函数 strrev
- 一天一个CRT函数 atof
- 一天一个CRT函数 atoi
- 一天一个CRT函数 memchr
- 一天一个CRT函数 _strdup
- 一天一个CRT函数 memmove