Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
strtail.c
Abstract:
Contains:
strtail ReverseString
Author:
Richard L. Firth (rfirth) 04-Apr-1991
Revision History:
--*/
#include "nticanon.h"
//
// prototypes
//
LPTSTR ReverseString( IN OUT LPTSTR String );
//
// routines
//
LPTSTR strtail( IN LPTSTR str1, IN LPTSTR str2 )
/*++
Routine Description:
strtail returns a pointer to the longest trailing substring within str1 consisting of characters contained in the set pointed at by str2
Arguments:
str1 pointer to string in which to find longest trailing substring str2 pointer to string of characters commprising substring
Return Value:
pointer to longest trailing substring or end of string
--*/
{ int index;
//
// reverse subject string
// get index of first non-matching character in target string
// re-reverse subject string
//
ReverseString(str1); index = STRSPN(str1, str2); ReverseString(str1); return str1+STRLEN(str1)-index; }
LPTSTR ReverseString( IN OUT LPTSTR String )
/*++
Routine Description:
Reverses a UNICODE string (LPWSTR)
Arguments:
String - to be reversed. Reverses string in place
Return Value:
pointer to String
--*/
{ DWORD len = STRLEN(String); DWORD i = 0; DWORD j = len - 1; TCHAR tmp;
len /= 2;
while (len) { tmp = String[i]; String[i] = String[j]; String[j] = tmp; ++i; --j; --len; } return String; }
|