windows-nt/Source/XPSP1/NT/base/crts/crtw32/string/wcsstr.c

73 lines
1.7 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/***
*wcsstr.c - search for one wide-character string inside another
*
* Copyright (c) 1985-2001, Microsoft Corporation. All rights reserved.
*
*Purpose:
* defines wcsstr() - search for one wchar_t string inside another
*
*Revision History:
* 09-09-91 ETC Created from strstr.c.
* 04-07-92 KRS Updated and ripped out _INTL switches.
* 04-06-93 SKS Replace _CRTAPI* with __cdecl
* 02-07-94 CFW POSIXify.
* 08-02-00 GB fixed str2 = ""
*
*******************************************************************************/
#ifndef _POSIX_
#include <cruntime.h>
#include <string.h>
/***
*wchar_t *wcsstr(string1, string2) - search for string2 in string1
* (wide strings)
*
*Purpose:
* finds the first occurrence of string2 in string1 (wide strings)
*
*Entry:
* wchar_t *string1 - string to search in
* wchar_t *string2 - string to search for
*
*Exit:
* returns a pointer to the first occurrence of string2 in
* string1, or NULL if string2 does not occur in string1
*
*Uses:
*
*Exceptions:
*
*******************************************************************************/
wchar_t * __cdecl wcsstr (
const wchar_t * wcs1,
const wchar_t * wcs2
)
{
wchar_t *cp = (wchar_t *) wcs1;
wchar_t *s1, *s2;
if ( !*wcs2)
return (wchar_t *)wcs1;
while (*cp)
{
s1 = cp;
s2 = (wchar_t *) wcs2;
while ( *s1 && *s2 && !(*s1-*s2) )
s1++, s2++;
if (!*s2)
return(cp);
cp++;
}
return(NULL);
}
#endif /* _POSIX_ */