user-0 提问: 关与strstr函数的运用

回复:
user: user-1
content: 引用 7 楼 u013869048 的回复:[quote=引用 5 楼 jha334201553 的回复:] 把文件全部读入内存先，或者文件隐射，给其首地址（可能需要类型强转） 文件隐射是什么？？[/quote]由操作系统实现的一种机制，windows上API是 CreateFileMapping

user: user-2
content: strstr, wcsstr, _mbsstr Find a substring.  char *strstr( const char *string, const char *strCharSet );  wchar_t *wcsstr( const wchar_t *string, const wchar_t *strCharSet );  unsigned char *_mbsstr( const unsigned char *string, const unsigned char *strCharSet );  Routine Required Header Compatibility  strstr <string.h> ANSI, Win 95, Win NT  wcsstr <string.h> or <wchar.h> ANSI, Win 95, Win NT  _mbsstr <mbstring.h> Win 95, Win NT    For additional compatibility information, see Compatibility in the Introduction.  Libraries  LIBC.LIB Single thread static library, retail version  LIBCMT.LIB Multithread static library, retail version  MSVCRT.LIB Import library for MSVCRT.DLL, retail version    Return Value  Each of these functions returns a pointer to the first occurrence of strCharSet in string, or NULL if strCharSet does not appear in string. If strCharSet points to a string of zero length, the function returns string.  Parameters  string  Null-terminated string to search  strCharSet  Null-terminated string to search for  Remarks  The strstr function returns a pointer to the first occurrence of strCharSet in string. The search does not include terminating null characters. wcsstr and _mbsstr are wide-character and multibyte-character versions of strstr. The arguments and return value of wcsstr are wide-character strings; those of _mbsstr are multibyte-character strings. These three functions behave identically otherwise.  Generic-Text Routine Mappings  TCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined  _tcsstr strstr  _mbsstr  wcsstr     Example  /* STRSTR.C */  #include <string.h> #include <stdio.h>  char str[] =    "lazy"; char string[] = "The quick brown dog jumps over the lazy fox"; char fmt1[] =   "         1         2         3         4         5"; char fmt2[] =   "12345678901234567890123456789012345678901234567890";  void main( void ) {    char *pdest;    int  result;    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 );    else       printf( "%s not found\n", str ); }   Output  String to be searched:    The quick brown dog jumps over the lazy fox             1         2         3         4         5    12345678901234567890123456789012345678901234567890  lazy found at position 36   String Manipulation Routines  See Also   strcspn, strcmp, strpbrk, strrchr, strspn

user: user-1
content: 把文件全部读入内存先，或者文件隐射，给其首地址（可能需要类型强转）

user: user-0
content: 引用 5 楼 jha334201553 的回复:把文件全部读入内存先，或者文件隐射，给其首地址（可能需要类型强转） 文件隐射是什么？？

user: user-0
content: 引用 3 楼 buyong 的回复:expected 'const char *' but argument is of type 'struct FILE *' 这是这个问题最好的答案了 这条语句是什么意思？？

user: user-3
content: expected 'const char *' but argument is of type 'struct FILE *' 这是这个问题最好的答案了

user: user-4
content: strstr第一个参数是一个字符串指针，，，你哪个fp是一个文件指针，，，两者类型不同，你可以强制类型转换看看效果如何

user: user-5
content: 当然不可以 strstr 2个参数都是const char*