summaryrefslogtreecommitdiffstats
path: root/private/crt32/string/strrev.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/string/strrev.c')
-rw-r--r--private/crt32/string/strrev.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/private/crt32/string/strrev.c b/private/crt32/string/strrev.c
new file mode 100644
index 000000000..5c5642b58
--- /dev/null
+++ b/private/crt32/string/strrev.c
@@ -0,0 +1,58 @@
+/***
+*strrev.c - reverse a string in place
+*
+* Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* defines _strrev() - reverse a string in place (not including
+* '\0' character)
+*
+*Revision History:
+* 02-27-90 GJF Fixed calling type, #include <cruntime.h>, fixed
+* copyright.
+* 10-02-90 GJF New-style function declarator.
+* 01-18-91 GJF ANSI naming.
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <string.h>
+
+/***
+*char *_strrev(string) - reverse a string in place
+*
+*Purpose:
+* Reverses the order of characters in the string. The terminating
+* null character remains in place.
+*
+*Entry:
+* char *string - string to reverse
+*
+*Exit:
+* returns string - now with reversed characters
+*
+*Exceptions:
+*
+*******************************************************************************/
+
+char * _CALLTYPE1 _strrev (
+ char * string
+ )
+{
+ char *start = string;
+ char *left = string;
+ char ch;
+
+ while (*string++) /* find end of string */
+ ;
+ string -= 2;
+
+ while (left < string)
+ {
+ ch = *left;
+ *left++ = *string;
+ *string-- = ch;
+ }
+
+ return(start);
+}