68 lines
1.3 KiB
C
68 lines
1.3 KiB
C
/*
|
|
* implementation of MSDEVS extensions to string.h
|
|
*
|
|
* Copyright 1999 Corel Corporation (Albert den Haan)
|
|
*/
|
|
|
|
/* WARNING: The Wine declarations are in tchar.h for now since string.h is
|
|
* not available to be altered in most development environments. MSDEVS 5
|
|
* declarse these functions in its own "string.h" */
|
|
|
|
#include "tchar.h"
|
|
|
|
#include <ctype.h>
|
|
#include <assert.h>
|
|
|
|
char *_strlwr(char *string) {
|
|
char *cp;
|
|
|
|
assert(string != NULL);
|
|
|
|
for(cp = string; *cp; cp++) {
|
|
*cp = tolower(*cp);
|
|
}
|
|
return string;
|
|
}
|
|
|
|
char *_strrev(char *string) {
|
|
char *pcFirst, *pcLast;
|
|
assert(string != NULL);
|
|
|
|
pcFirst = pcLast = string;
|
|
|
|
/* find the last character of the string
|
|
* (i.e. before the assumed nul-character) */
|
|
while(*(pcLast + 1)) {
|
|
pcLast++;
|
|
}
|
|
|
|
/* if the following ASSERT fails look for a bad (i.e. not nul-terminated)
|
|
* string */
|
|
assert(pcFirst <= pcLast);
|
|
|
|
/* reverse the string */
|
|
while(pcFirst < pcLast) {
|
|
/* swap characters across the middle */
|
|
char cTemp = *pcFirst;
|
|
*pcFirst = *pcLast;
|
|
*pcLast = cTemp;
|
|
/* move towards the middle of the string */
|
|
pcFirst++;
|
|
pcLast--;
|
|
}
|
|
|
|
return string;
|
|
}
|
|
|
|
char *_strupr(char *string) {
|
|
char *cp;
|
|
|
|
assert(string != NULL);
|
|
|
|
for(cp = string; *cp; cp++) {
|
|
*cp = toupper(*cp);
|
|
}
|
|
return string;
|
|
}
|
|
|