Mail Archives: djgpp/2001/09/28/20:34:14
"A. Sinan Unur" wrote:
>
> Radical NetSurfer wrote in
> news:lcq8rtk1nqua2hc6rqfhmqisbd587n8t2n AT 4ax DOT com:
>
> > I would like to encourage everyone who has a need for
> > strrev to come forward and encourage the maintainers of
> > LIBC used with GCC to kindly add strrev.
>
> Count me against this if for no other reason that the fact that I do not
> like extra nonstandard function which solve tiny problems. If you need the
> functionality, you can write one for your own situation. If it is going to
> be added to a library, the solution needs to be useful to more than just
> one person in a particular situation.
>
> Anyway, the main point of my post, however, is to point out just one of the
> gotchas with these kinds of functions.
>
> You give the following usage example:
>
> > Example
> > printf("The reverse of %s is %s\n", str, strrev(str) );
>
> Hmmmmm ..... let us see using the code you suggested:
>
> /* +++Date last modified: 05-Jul-1997 */
> /*
> ** STRREV.C - reverse a string in place
> **
> ** public domain by Bob Stout
> */
>
> #include <string.h>
> #include <stdlib.h>
> #include <stdio.h>
>
> 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;
> }
>
> int main(void)
> {
> char s[] = "This is a test.";
> printf("Original String: %s\nReversed String:%s\n", s, strrev(s));
> return 0;
> }
>
> C:\var>gcc djstrrev.c -o djstrrev.exe -O2 -Wall
>
> C:\var>djstrrev
> Original String: .tset a si sihT
> Reversed String: .tset a si sihT
>
> Now, think about that.
Thank you. I knew there was a reason I made my equivalent
(revstring) a void function. I just didn't know what it was :-)
--
Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT XXXXworldnet DOT att DOT net)
(Remove "XXXX" from reply address. yahoo works unmodified)
mailto:uce AT ftc DOT gov (for spambots to harvest)
- Raw text -