Previous Page
Next Page

wcsstr

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;
}

See Also

wcspbrk( ), wcsspn( ), wcscspn( ), wcschr( ), wcsrchr( ), strstr( ), strpbrk( ), strspn( ), strcspn( ), strchr( ), strrchr( )


Previous Page
Next Page