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( ) |