From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/strrev.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/strrev.c (limited to 'reference/C/CONTRIB/SNIP/strrev.c') diff --git a/reference/C/CONTRIB/SNIP/strrev.c b/reference/C/CONTRIB/SNIP/strrev.c new file mode 100755 index 0000000..20d9952 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/strrev.c @@ -0,0 +1,37 @@ +/* +** STRREV.C - reverse a string in place +** +** public domain by Bob Stout +*/ + +#include + +char *strrev(char *str) +{ + char *p1, *p2; + + if (! str || ! *str) + return str; + for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) + { + *p1 ^= *p2; + *p2 ^= *p1; + *p1 ^= *p2; + } + return str; +} + +#ifdef TEST + +#include + +int main(int argc, char *argv[]) +{ + while (--argc) + { + printf("\"%s\" backwards is ", *++argv); + printf("\"%s\"\n", strrev(*argv)); + } +} + +#endif /* TEST */ -- cgit v1.2.3-54-g00ecf