Searches a wide string for a replica of another wide string #include <wchar.h> wchar_t *wcsstr ( const wchar_t *s1 , const wchar_t *s2 ); The wcsstr( ) function searches the wide string addressed by s1 for the sequence of wide characters contained in s2, not counting the terminating null wide character. The return value is a pointer to the first wide character in the first occurrence in s1 of the sequence contained in s2, or a null pointer if there is no such occurrence. If s2 points to an empty wide string, then wcsstr( ) returns the value of its first argument, s1. ExampleThis simple program prints each line in a file that contains a given keyword: #define MAX_LINE 1024 int main( int argc, char **argv ) { FILE *fpIn = NULL; wchar_t keyword[MAX_LINE] = { L'\0' }; wchar_t line[MAX_LINE] = { L'\0' }; if ( argc != 3 ) { wprintf( L"Syntax: %s <keyword> <filename>\n", argv[0] ); return -1; } if (( fpIn = fopen( argv[2], "r" )) == NULL ) return -2; else fwide( fpIn, 1 ); if ( mbstowcs( keyword, argv[1], MAX_LINE ) == -1 ) return -3; int count = 0; while ( fgetws( line, MAX_LINE, fpIn ) != NULL ) if ( wcsstr( line, keyword ) != NULL ) { ++count; fputws( line, stdout ); } if ( !feof( fpIn )) return -4; else return count; } See Alsowcspbrk( ), wcsspn( ), wcscspn( ), wcschr( ), wcsrchr( ), strstr( ), strpbrk( ), strspn( ), strcspn( ), strchr( ), strrchr( ) |