Name
wcsstr
Synopsis
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
.
Example
This 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;
}
Get C in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.